java中this详解
一些刚接触java的新手会有对this有这样那样的困惑,本文将尽我所能解释java中this的用法。
this说白了,指的就是当前对象。看如下代码:
public class TestThis ...{
int i = 1;
TestThis(int i)...{
System.out.println(”i=”+i);
System.out.println(”this.i=”+this.i);
}
public class Another...{
int i=3;
Another(int i)...{
System.out.println(”i=”+i);
System.out.println(”this.i=”+this.i);
System.out.println(”TestThis.this.i=”+TestThis.this.i);
}
}
public static void main(String[] args)...{
TestThis t=new TestThis(2);
TestThis.Another a=t.new Another(4);
}
}
/*Output:
i=2
this.i=1
i=4
this.i=3
TestThis.this.i=1
*///:~
看内部类的构造函数输出分别是:
i=4
this.i=3
TestThis.this.i=1
i表示的是你传进去的参数;this.i指的是当前对象的i,就是内部类的i;TestThis.this.i表示的是TestThis的当前对象的i。为什么要引入this呢?就像内部类,有两个i,一个是局部变量,一个是内部类的变量。怎么区分这两个i呢?所以就引入了this;在创建类的时候new TestThis();的时候,java在底层吧new这个对象的引用传给了自己。我们怎么调用传给自己的这个对象呢,就是用this。而this.xxx指的就是当前对象的xxx。
|