内部类 .this 和 .new

来源:互联网 发布:孙俪淘宝店铺叫什么 编辑:程序博客网 时间:2024/06/07 00:37

如果你需要生成对外部类对象的应用,可以使用外部类的名字后面紧跟圆点和this,这样产生的引用自动的具有正确的类型

public class DotClass {    void f(){System.out.println("DotClass.f()");}    public class Inner{        public DotClass outer(){return DotClass.this;}    }    public Inner inner(){return new Inner();}    public static void main(String[] args) {        DotClass ct = new DotClass();        DotClass.Inner di = ct.inner();        di.outer().f();    }}

有时你可能需要告知某些其他对象,去创建某个内部类的对象。要实现此目的,你必须在new表达式中提供对其他外部类对象的引用,这时需要.new语法。

public class InsideNew {    public class Inner{        Inner(){            System.out.println("ccc");        }    }    //此方法替代.new    public Inner in(){        return new Inner();    }    public static void main(String[] args) {        InsideNew insideNew = new InsideNew();        InsideNew.Inner dniInner = insideNew.new Inner();        InsideNew.Inner diInner = insideNew.in();    }}
0 0
原创粉丝点击