《java编程思想》学习笔记——内部类三

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

相关文章
相关标签/搜索