public class ThisTest { public void method() {
System.out.println("TestThis.method()");
} public class Inner {
public ThisTest getThisTest() {
return ThisTest.this;
}
}

public Inner getInner(){
return new Inner();
} public static void main(String[] args) {
ThisTest tt = new ThisTest();
Inner in = tt.getInner();
ThisTest t = in.getThisTest();
System.out.println(tt == t);
}}
各位,这个是在内部类中应用.this的用法,在think in java中看到的,感觉很巧妙,真是服了。下个看看是true还是false?

解决方案 »

  1.   

    应该是true吧。ThisTest.this;就是外部类(ThisTest)的对象的引用,这个引用就是tt。
      

  2.   

    绕来绕去的,我还不知这样写有什么用处?楼主指点吧。
    think in java 里边还说过 一个 类没有main 方法也能打印出东西咧,就是把代码放到static块(是这样吗?),除了在菜鸟面前装B一下,没什么用途,呵呵。
      

  3.   

    呵呵 没有main方法是不可能有输出的。
      

  4.   

    一般是这样用的:类名.this.方法由于内部类中有个方法与外部类的方法重名了,如果要调用外部类中的方法就需要采用这种方式。当然了,这内部类肯定不能是静态的内部类。