10.3使用.this與.newjava
一、若是你須要生成對外部類對象的引用,能夠使用外部類的名字後面緊跟圓點和this。this
public class DotThis { void f() { System.out.print("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語法。code
public class DotNew { public class Inner {} public static void main(String[] args) { DotNew dn = new DotNew(); DotNew.Inner dni = dn.new Inner(); } }
(1)要直接建立內部類的對象,不能直接引用外部類的名字DotNew,而是必須使用外部類的對象來建立內部類對象。對象
(2)在擁有外部類對象以前是不可能建立內部類對象的。class
(3)若是 建立的是嵌套類(靜態內部類),那麼它就不須要對外部類對象的引用。語法