JAVA this关键字
this概念:
1、若在构造方法中出现了this关键字,则代表当前正在构造的对象。
2 、若在成员方法中出现了this关键字,则代表当前正在调用的对象。
3、this关键字本质上就是当前类类型的引用变量。
工作原理
在构造方法中和成员方法中访问成员变量时,编译器会加上this.的前缀, 而this.相当于汉语中"我的",当不同的对象调用同一个方法时,由于调用方法的对象不同导致this关键字不同,从而this.方式访问的结果也就随之不同。
使用方式
1、当局部变量名与成员变量名相同时,在方法体中会优先使用局部变量(就近原则),若希望使用成员变量,则需要在成员变量的前面加上this.的前 缀,明确要求该变量是成员变量。
2、 this关键字除了可以通过this.的方式调用成员变量和成员方法外,还可以作为方法的返回值。
3、 在构造方法的第一行可以使用this()的方式来调用本类中的其它构造方法。
注意事项
1、引用类型变量用于存放对象的地址,可以给引用类型赋值为null,表示不指向任何对象。
2、当某个引用类型变量为null时无法对对象实施访问(因为它没有指向任何对象)。此时,如果通过引用访问成员变量或调用方法,会产生 NullPointerException 异常。
public class ThisTest {
// 自定义构造方法
ThisTest() {
// this代表当前正在构造的对象
System.out.println("构造方法中:this = " + this);
}
// 自定义成员方法
void show() {
// this代表当前正在调用的对象
System.out.println("成员方法中:this = " + this);
}
public static void main(String[] args) {
// 1.声明ThisTest类型的引用指向该类型的对象
ThisTest tt = new ThisTest();
// 2.调用show方法
tt.show();
System.out.println("main方法中:tt = " + tt);
}
}
运行结果:
构造方法中:this = ThisTest@7e0ea639
成员方法中:this = ThisTest@7e0ea639
main方法中:tt = ThisTest@7e0ea639