java中的this关键字
2016-01-01 15:37
453 查看
今天看视频的时候碰到一个this的指向问题,现在就写篇博客记录一下吧,先看一下类的定义:
Father类:
}
Son类:
现在来看看主函数:
Father f = new Son();
System.out.println(“f.name:” + f.name);
System.out.println(“f.getName():” + f.getName());
运行的结果:
this:test2.Son@15db9742
f.name:Father
f.getName():Father
第一行分析:
Father里面的this不是指向Father类,这个this就是当这个对象new出来的时候这个对象的引用,例如将子类的实例赋值给父类,那么父类里面使用this关键字时这个this指向的是子类的对象。
第二行、第三行分析:
既然前面说了this指向不是Father,那么this.name应该是Son,按我自己的理解,Son继承的Father类,那么Father中的name属性也继承,所以this.name还是可以访问到Father的name属性的。
Father类:
public class Father { String name = "Father"; public Father() { System.out.println("this:" + this); } public String getName() { return this.name; }
}
Son类:
package test2; public class Son extends Father{ String name = "Son"; public Son() { } }
现在来看看主函数:
Father f = new Son();
System.out.println(“f.name:” + f.name);
System.out.println(“f.getName():” + f.getName());
运行的结果:
this:test2.Son@15db9742
f.name:Father
f.getName():Father
第一行分析:
Father里面的this不是指向Father类,这个this就是当这个对象new出来的时候这个对象的引用,例如将子类的实例赋值给父类,那么父类里面使用this关键字时这个this指向的是子类的对象。
第二行、第三行分析:
既然前面说了this指向不是Father,那么this.name应该是Son,按我自己的理解,Son继承的Father类,那么Father中的name属性也继承,所以this.name还是可以访问到Father的name属性的。
相关文章推荐
- java socket 编程
- 回调--一个经典例子让你彻彻底底理解java回调机制
- java.util.Map的衍生
- Java部分总结图片版(已经加上原图链接下载!!!)
- java13.语言进阶------本地文件操作---文件夹的创建、重命名、删除
- MyEclipse 2015 stable2安装注册及配置说明
- MyEclipse设置注释格式
- java12.语言进阶------本地文件操作---文件的创建、删除、重命名
- (5)java变量范围和变量命名
- (4)java的数据类型
- java实现人民币大写
- java的poi技术读取Excel[2003-2007,2010]
- Java容器
- 《java并发编程实战》读书笔记——基础知识
- codingbat:recursion-2:1(JAVA)
- Java虚拟机解析篇之---内存模型
- java中的拆箱装箱原理以及引出的享元模式
- codingbat :recursion1:2(JAVA)
- Java读书笔记(2)-输入输出
- Codeingbat:recursion-1:1(JAVA)