观看资料:《Java编程思想 第4版》
本文为个人学习回顾,仅供参考。
一.this的由来
有如下代码
A a1 = new A();
a1.t();
A a2 = new A();
a2.t();
对象a1,a2均调用了t()方法。而只有一个t()方法,它是如何知道本次是被a1调用还是a2调用呢?其实编译器在背后暗自将所操作对象的引用传递给了方法t()。所以我们的调用其实是a1.t(a1)、a2.t(a2)。当然,Java语法是不允许我们在代码中这么写的。那么如果我们需要再t()方法中使用调用该方法的对象时该如何做?这就引入了this关键字。
二.this关键字的使用
this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。注:如果在方法内部调用同一个类的另一个方法是不用使用this的。
测试代码如下:
public class TestThis {
public static void main(String[] args) {
A a1 = new A();
a1.t();
B b = new B();
b.t();
}
}
class A{
public void t(){
System.out.println(this.getClass().getName());
}
}
class B extends A{
}
输出:
org.some.test1.A
org.some.test1.B