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