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)若是 建立的是嵌套类(静态内部类),那么它就不须要对外部类对象的引用。语法