Java-- 使用 .this与.new
如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this。这样产生的引用自动的具有正确的类型,这一点在编译期就被知晓并受到检查,因此没有任何运行时开销。下面展示如何使用.this
1 package innerclasses; 2 3 public class DoThis { 4 void f(){ 5 System.out.println("DoThis.f()"); 6 } 7 8 public class Inner{ 9 public DoThis outer(){ 10 return DoThis.this; 11 } 12 } 13 14 public Inner inner(){ 15 return new Inner(); 16 } 17 18 public static void main(String[] args){ 19 DoThis dt = new DoThis(); 20 DoThis.Inner dti = dt.inner(); 21 dti.outer().f(); 22 } 23 24 }
有时你可能想要告知某些其他对象,去创建其某个内部类的对象。要实现此目的,你必须在new表达式中提供对其他外部类对象的引用,这时需要使用。this语法,
如下
package innerclasses; public class DoNew { public class Inner{ Inner(){ System.out.println("DoNew.Inner"); } } public static void main(String[] args){ DoNew dn = new DoNew(); DoNew.Inner dni = dn.new Inner(); } }