this
要点:
this关键字只能在方法中使用,它能为调用该方法的对象提供相应的句柄,使得同一个类产生的不同对象实例在调用同一方法的时候,系统能判断出是哪一个对象在进行调用.
比如:
MyObject a=new MyObject();
MyObject b=new MyObject();
a.f();// (3)
b.f();// (4)
编译器在编译的时候,实际上是将(3),(4)句解释为
MyObject.f(a);
MyObject.f(b);
的,这样就将调用了该方法的对象的信息传到了方法中,也就是传给了this,就可以通过this表示调用该方法的对象实例.
用this的概念还可以解释为什么在静态方法中不能调用非静态方法和元素,这是因为静态方法中没有this,也就是说我们不能获得调用该方法的对象的句柄.既然找不到这个对象实例,我们又怎么能够在其中调用对象实例的方法和元素呢?
那为什么静态方法没有this呢?用静态方法的概念可以来理解这个问题.静态方法是类方法,是所有对象实例公用的方法.它不属于某一个具体的对象实例,因此也无法用this来体现这个实例.这和非静态方法是不一样的.打个比方,在一个局域网内的几个用户每个人都有一台客户机,但都访问一台公共的服务器.对于每台客户机来说,它的this就是使用它的用户.而对于服务器来说,它没有this,因为它是大家公用的,不针对某一个具体的客户.
- 浏览: 667776 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (608)
- Java (125)
- Struts (16)
- Spring (19)
- iBatis (11)
- Hibernate (14)
- Oracle (33)
- Mysql (22)
- JBoss (4)
- JavaScript (46)
- Ajax (9)
- jQuery (5)
- web (25)
- Html (14)
- Exception (26)
- Linux (106)
- Vim (11)
- Python (12)
- ComputerTech (25)
- 文章 (50)
- Maven (20)
- FreeMarker (5)
- Json (0)
- Tomcat (6)
- ActiveMQ (2)
- Test (1)
- Git (5)
- Shell (1)
- 《Java并发编程实践》 (2)
- 产品设计 (1)
- xxx (0)
- diamond (1)
- dubbo (1)
- Raspbian (1)
- IDE (3)
- 并发编程 (1)
最新评论
-
mikzhang:
抱歉,写这篇文章时,博主开发的程序只面对IE浏览器,故没考虑其 ...
JS 中改变confirm默认按钮提示“确定""取消" -
poterliu:
测试过了,发现execScript方法只支持IE浏览器。目前已 ...
JS 中改变confirm默认按钮提示“确定""取消"
发表评论
-
Java_判断线程池所有任务是否执行完毕
2016-12-20 10:31 1685via: http://blog.csdn.net/truo ... -
Java_OGNL
2016-12-06 15:34 432via: http://www.cnblogs.com/q ... -
Java_String.format
2016-03-25 15:44 528常规类型的格式化 String类的format()方法用于 ... -
Java_堆和栈
2016-02-18 15:25 483堆栈空间 栈(操作系统):由操作系统自动分配释放 , ... -
Java_4类8种数据类型
2016-02-18 14:51 871ref: http://www.cnblogs.com/s ... -
Java_图解jsp与Servlet的关系
2016-01-21 18:11 350Servlet是Java提供的用于 ... -
Java_http请求接口
2016-01-15 14:32 558Java调用第三方厂商提供了http接口 在多人 ... -
Java_enum
2016-01-12 11:08 526ref: http://www.cnblogs.com/h ... -
Java_Jdbc_连接池的testQuery/validationQuery设置
2015-12-30 18:03 667via: http://blog.sina.com.cn/s ... -
Java_log4j_log4j.properties 详解
2015-12-30 17:38 610log4j.properties 详解 一.参数意义说明输 ... -
Java_ArrayList_排序
2015-12-25 11:53 461via: http://www.importnew.com ... -
Java_Session
2015-12-23 17:23 698via: http://blog.sina.com.cn/s ... -
Java_Thread_join()
2015-12-13 10:31 453MSDN:Blocks the calling thre ... -
Java_Thread的六种状态
2015-12-02 16:30 496/** * A thread state. ... -
Java_引用类型
2015-11-30 11:04 460java中四种引用类型 ... -
Java_编程中线程池的最大性能开发与风险规避
2015-11-30 10:58 422Java编程中线程池的最 ... -
Spring_@Autowired Vs Java_@Resource 的区别
2015-11-24 10:13 691一、 @Autowired和@Resource都可以用来装 ... -
Java_设计与开发 JAX-WS 2.0 Web 服务
2015-11-20 13:18 414via: http://www.ibm.com/develo ... -
Java_接口&抽象类
2015-12-29 22:43 5071.实现继承与接口继承 实现继承通常情况下表现为对 ... -
Java_继承、实现、依赖、关联、聚合、组合的联系与区别
2015-11-19 11:33 1051ref: http://blog.csdn.net/ke ...
相关推荐
在Java编程语言中,`this`和`super`是两个非常关键的关键词,它们在类的继承机制中扮演着至关重要的角色。`this`关键字主要用于当前对象的引用,而`super`关键字则用于访问父类的成员。让我们深入探讨这两个概念以及...
This is implementation of popular RSA algorithm for encryption and decryption in java. It can be run on client server architecture
This release modernizes support for many industry standards and continues simplification of enterprise ready APIs. Enhancements include: Java Servlet 4.0 API with HTTP/2 support Enhanced JSON ...
- "TestThis.class":这通常是一个测试类的编译结果,用于验证代码的功能是否正确。 - ".classpath":这是Eclipse IDE的一个配置文件,记录了项目的类路径,帮助编译器和运行时找到依赖的库。 - ".project":这是...
在"java_array_instance.rar_This Is It"这个示例中,可能包含了多种数组实例化的例子,如一维数组、二维数组,甚至可能是自定义对象的数组。文件`www.pudn.com.txt`可能包含了相关代码的详细解释,而`java`文件可能...
在Java编程语言中,深入理解和熟练运用引用、`this`关键字以及对象比较是提升编程技能的关键环节。本课程“MLDN魔乐JAVA_09深入引用、this关键字、对象比较”将带你深入探讨这些核心概念。 首先,让我们来讨论...
描述中的"this is a student code"进一步证实了这一点,表明这是一份学生编写的Java代码。 在Java编程中,学生通常会接触到以下几个关键知识点: 1. **基础语法**: 包括数据类型(如整型、浮点型、字符型和布尔型...
This application is a java EE forum witch include Ajax utility. It is design for understand Ajax functionality.
在Java编程语言中,`this`关键字是一个非常重要的概念,尤其在开发Android应用时更为常见。`this`关键字主要用于引用当前对象的实例变量、方法或构造器,它可以帮助开发者更清晰地理解代码逻辑,同时也提供了代码的...
CA Version 4.3 (December 3rd, 1998) ABSTRACT This report describes Jess, an expert system shell written entirely in Java. Jess supports the development ofrule-based expert systems which can be ...
This book shows how using Java can significantly improve Matlab program appearance and functionality. This can be done easily and even without any prior Java knowledge. Readers are led step-by-step ...
描述中的"this is code spring java"进一步确认了这是一个基于Spring的Java代码项目。Spring框架的核心特性之一是依赖注入(Dependency Injection,DI),它允许开发者解耦组件之间的依赖关系,使代码更易于测试和...
This book shows how using Java can significantly improve Matlab program appearance and functionality. This can be done easily and even without any prior Java knowledge. Readers are led step-by-step ...
This book shows how using Java can significantly improve Matlab program appearance and functionality. This can be done easily and even without any prior Java knowledge. Readers are led step-by-step ...
Java_Date_日期时间整理 Java 中的日期时间处理是非常重要的,以下是 Java 中日期时间整理的知识点总结: 一、获取服务器端当前日期 在 Java 中,可以使用 `java.util.Date` 类来获取服务器端当前日期。可以使用...
"200_java_code.rar_Java 200" 这个压缩包显然是针对初学者设计的,提供了200个Java编程实例,帮助初学者快速掌握Java的基础知识。 在学习Java时,首先要理解的是它的基本语法结构。Java程序由类(class)组成,每...
Java ME(Micro Edition)是Java平台的一个重要分支,主要用于嵌入式设备和移动设备的开发。这个"java_menu.rar_JAVA ME"压缩包文件显然包含了关于在Java ME环境中创建弹出式菜单的代码示例。在Java ME中,创建用户...
在这个Java程序中,我们可以期待看到如何利用基础的数学和编程逻辑来解决这类问题。 首先,追击问题通常涉及速度、距离和时间的概念。在Java中,我们可以创建类来表示追击者和被追者,这两个对象都有自己的位置...
【描述】提到"Ant java have a look for the futher development in this feilef the coster will have an impact",虽然句子结构略有不清晰,但可以推测其含义是建议对Ant Java进行深入研究,因为这将对未来的发展...
描述中的"this is java for a developer"进一步强调了这是面向开发人员的Java知识。 Java的核心特性包括“一次编写,到处运行”(Write Once, Run Anywhere, WORA),这意味着用Java编写的程序可以在任何支持Java的...