最重要的一点就是对当前对象的理解:当前对象就是指当前正在调用类中方法的对象
public class ThisTest {
public static void main(String[] args) { T t1 = new T(); T t2 = new T(); t1.print(); System.out.println(t1); t2.print(); System.out.println(t2); } }
class T { public void print() { System.out.println(this); } }
其运行结果是
kewailianxi.T@c17164 kewailianxi.T@c17164 kewailianxi.T@1fb8ee3 kewailianxi.T@1fb8ee3
可以发现t1.print();由t1调用了这个T类中的print()方法,t1就是个当前对象(的引用);运行时打印this,也就是打印对象t1自身, 通过System.out.println(t1);打印的结果来看,这t1.print()结果相同;
对于t2,根据这个法则:”this一般出现在方面里面,当这个方法还没有调用的时候this指的是谁并不知道,
但是实际当中如果new一个对象出来之后,this指的就是当前这个对象,对哪个对象调用这个方法this指的就是谁.
如果再new一个对象,这个对象也有自己的this.this指的就是另外一个对象了”不难理解,这是的this指的t2了