Java基礎學習——內部類(2)

使用.this和.new

如果需要生成對外部類對象的引用,可以使用外部類的名字後邊跟着圓點和this。

public class DotThis{
  void f(){Syetem.out.println("DotThis.f()");}
  public class Inner{
    public DotThis outer(){
      return DotThis.this;
    }
  }
  public Inner inner(){return new Inner();}
  public static void main(String[]args){
    DotThis dt=new DotThis();
    DotThis.Inner dti=dt.inner();
    dti.outer().f();
  }
}

有時候,你可能需要創建某些對象的內部類的對象,那麼這個時候你就需要在new表達式中提供對其它外部類對象的引用,這裏需要使用.new語法。

public class DotNew{
  public class Inner{}

  public static void main(String[] args){
    DotNew dn=new DotNew();
    DotNew.Inner dni=dn.new Inner();
  }
}

要想直接創建某個內部類的對象,必須使用外部類的對象來創建該內部類對象。這也解決了內部類名字作用域的問題

在擁有內部類對象之前是不可能創建內部類對象的。這是因爲內部類對會暗暗地鏈接到創建它的外部類對象上。但是如果你創建的是嵌套類(靜態內部類),那麼他就不需要對外部類對象的引用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章