Java基础学习——内部类(2)

    xiaoxiao2021-03-25  99

    使用.this和.new

    如果需要生成对外部类对象的引用,可以使用外部类的名字后边跟着圆点和this。

    public class DotThis{ void f(){Syetem.out.println("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语法。

    public class DotNew{ public class Inner{} public static void main(String[] args){ DotNew dn=new DotNew(); DotNew.Inner dni=dn.new Inner(); } }

    要想直接创建某个内部类的对象,必须使用外部类的对象来创建该内部类对象。这也解决了内部类名字作用域的问题

    在拥有内部类对象之前是不可能创建内部类对象的。这是因为内部类对会暗暗地链接到创建它的外部类对象上。但是如果你创建的是嵌套类(静态内部类),那么他就不需要对外部类对象的引用。

    转载请注明原文地址: https://ju.6miu.com/read-6725.html

    最新回复(0)