1、在外類中創建內部類對象用.new
public class DotNew {
public class Inner{}
public static void main(String[] args) {
DotNew dn = new DotNew();
DotNew.Inner dni = dn.new Inner();
}
}
在擁有外部類對象之前 ,無法創建內部類對象。 (此處指的是非靜態內部類)。靜態內部類(嵌套類不需要外部類引用)
2、在內部類對外部類對象的引用 用.this
public class DotThis {
void f(){System.out.println("DotThis");}
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 inner = dt.inner();
inner.outer().f();
}
}
3、嵌套類 static修飾的內部類
普通內部類內部不能出現static關鍵字 而嵌套類不受限制。
4、爲何使用內部類
5、迭代器引用問題
第一種情況是Arrays.asList()的輸出被傳遞給ArrayList()的構造器,這裏只是創建一個引用數組a的元素的ArrayList。
Arrays.asList(a)則是直接引用數組,所以會原來數據內容。