Java this关键字简单理解
2015-12-28 13:17
459 查看
首先你要知道在一个类中无论是写入方法还是属性等,肯定是要被外界引用到的(private 等被保护的除外),要是想在类的外部调用方法或是属性,需要一个引用类型指向一个new的对象,如HelloWorld h=new HelloWorld();中的“h”,但是如果你要想再一个类的内部使用该类的方法、属性、构造器等,java提供了一个简单的方法--this关键字。写入一个例子看了就很好理解了。
public class Test01 {
结果:
从上面例子可以看出this 的作用是在类的内部调用本身类的方法或属性。
刚开始是我对于this定义“代表调用该方法对象的引用”一直不理解是怎么回事,看下面小例子
其实this关健字很好理解,别人的解释也已经很到位了。但是需要注意一下几点:
1、this一般是在方法体中使用。
2、它实现了在类的内部调用该类的方法或属性。
3、在一个构造函数中调用本身的另一个构造函数。
4、当类没有被new是,并不知道this指向的是哪个对象,所以不能与static一起使用,因为被static修饰的方法是随类生成时生成的,不能被new。
public class Test01 {
public String str = "test01"; public String getStr() { return str; } public void setStr(String str) { // System.out.println(this); this.str = str; } public void getInfo(){ System.out.println(this.str); } } </span>
<span style="font-size:14px;">public class Test01_main { public static void main(String [] args){ Test01 t=new Test01(); //在Test01类的内部,调用Test01类中的str属性。 t.getInfo(); //在Test01_main类的中,调用Test01类中的str属性。 System.out.println(t.str); //对 Test01中的属性进行更改 t.setStr("new test01"); //通过Test01类中查看属性 t.getInfo(); //通过外部方法查看s属性 System.out.println(t.str); } }</span>
结果:
test01 test01 new test01 new test01
从上面例子可以看出this 的作用是在类的内部调用本身类的方法或属性。
刚开始是我对于this定义“代表调用该方法对象的引用”一直不理解是怎么回事,看下面小例子
<span style="font-size:14px;">public class Test02 { public void getInfo(){ System.out.println(this); } public static void main(String []args){ Test02 t=new Test02(); t.getInfo(); System.out.println(t); } } </span>结果:
<span style="font-size:14px;">com.lava.test.Test02@368102c8 com.lava.test.Test02@368102c8</span>不多说从结果看出this和引用类型t的打印结果一样。解释了上面所说的一句话。
其实this关健字很好理解,别人的解释也已经很到位了。但是需要注意一下几点:
1、this一般是在方法体中使用。
2、它实现了在类的内部调用该类的方法或属性。
3、在一个构造函数中调用本身的另一个构造函数。
4、当类没有被new是,并不知道this指向的是哪个对象,所以不能与static一起使用,因为被static修饰的方法是随类生成时生成的,不能被new。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树