6/12
this.关键字
在开发过程当中,构造方法的参数名和他要初始化的成员变量名一般相同。这就会产生一个问题,相同的变量名,那怎怎么分清谁是成员变量谁是局部变量呢?
隐藏问题
- 方法中定义了和类中成员变量名相同的局部变量。
- 在方法体中通过同名变量的变量名来访问变量值,只能访问到局部变量的值而不能访问到同名成员变量的值。
- 在方法体中就好像同名成员变量被同名局部变量给隐藏起来了。
用this.关键字来解决这个问题。给表示成员变量的变量名前加this.前缀
正式了解this.
this.关键字:代表(当前)对象自身的引用。而this指向(代表)的是哪个对象呢?
- 在构造方法中的this指代的当前对象其实就是构造方法执行时jvm正在创建的那个对象。
- 对于普通成员方法而言,调用方式为对象名.方法()所以在普通成员方法体中this所代表的就是那个调用方法的对象。
- “通过谁调用的对象,谁就是this”
this的作用
-
对象名.方法()这个方法中存在一个和成员变量名字相同的局部变量,成员变量被隐藏,无法调用,将成员变量名前+this,解决这个问题。
-
访问对象的成员。
-
访问对象的构造方法:this(实参列表)(原来的默认值是null,我不想要这个默认值,就用到这个功能,此时new一个新对象后成员变量的默认值就为自己所设定的值。)
语法约束:用这个功能是this()只能出现在构造方法方法体中并且只能写在方法体的第一行。