this关键字杂谈
来源:互联网 发布:mac 双系统分区格式 编辑:程序博客网 时间:2024/06/06 19:03
1 this;深藏不露的关键字
例1:
public class SimpleClassToShowThis {public int a;public void test(){int a;//此行注释a=55;System.out.println(a);}public static void main(String[] args) {SimpleClassToShowThis var=new SimpleClassToShowThis();var.test();System.out.println(var.a);}}局部变量和实例变量重名的时候会发生什么事情?例如上面的局部变量和实例变量都是a,也许我们会认为java变量会报错,因为两个变量重名了,而且他们的作用域是有重叠的:实例变量a可以在类中所有的方法中访问,包括方法test,而方法中还有一个局部变量也叫做a。那么当给a赋值时,以及以a为参数调用println()方法时,java平台肯定搞不清它是哪个a,这应该是个错误!
编译结果:
将实例变量a注释掉的编译结果:
分析原因:
当方法体中使用一个变量的时候,java平台会按照先局部变量,后实例变量的顺序找,所以说test()中声明的int类型a变量,它与实例变量中的变量a虽然重名,但是却不会让java平台迷惑。按照先局部变量后实例变量的顺序,test()方法中第二行和第三行使用到的a都是局部变量。
推荐使用this关键字:为了让程序易读,且为了避免潜在的错误(一个方法中没有与实例变量重名的局部变量,后来又增加了一个与实例变量重名的局部变量)
例2:
public class This{public int b;public void test01(){int b=10;this.b=b+5;//指向对象(var)的引用System.out.println(b);}public static void main(String[] args) {This var=new This();var.test01();System.out.println(var.b);}}
this:指向对象自己的引用
this关键字在方法中使用,是指向对象的引用,也就是this代表调用这个方法的对象。从理解上可以认为:(this和对象名有相同的值:引用),都指向同一个对象
this关键字只能在方法中使用,是用来指代调用方法的类的对象
如果使用this关键字访问一个变量,则是访问实例变量,java平台不会再从局部变量中寻找,这与不加this关键字不同
2 在方法中调用方法
3 留个无参的构造方法(给重要属性辅初始值)
4 在构造方法中调用构造方法
待续......
阅读全文
0 0
- this关键字杂谈
- php杂谈【基础篇】之_11.理解PHP中this,self,parent三个关键字用法
- 关键字this
- this关键字
- this关键字
- this 关键字
- this 关键字
- this关键字
- this关键字
- this 关键字
- this 关键字
- this 关键字
- this关键字
- 关键字this
- 关键字this
- this 关键字
- this 关键字
- this关键字
- Hotal (巧妙地dp设计)
- SSD移植
- opencv3编程入门
- QT简单实验——计算器
- HDU 6154 CaoHaha's staff(【数学规律题】)
- this关键字杂谈
- eclipse相关快捷键
- 各大公司Java后端开发面试题总结
- 简约而不简单的Django新手图文教程
- 谓词
- Java运维面试题
- 【JAVASE_学习笔记】函数与重载
- 模拟:Fraction HDU
- java--类、继承、方法