public class A {

    class B {

    }

}

在另一个包中的Main class怎么构造B呢??

public Main {

    public static void main(String[] args) {

        A a = new A();

        A.B b = a.new A.B();

    }

}

分析:

1、首先,想要访问到B,总得先能访问到A吧,除非B是public的,或者B是protected的,B的子类能访问到B。

2、现在B是default,也就是说,Main中想访问B就只能先访问到A。但毕竟B是default的,所以如果A没有实例化的话,仅仅通过路径A.B还是无法构建B。所以,只能通过实例化A后的对象来调用B的构造器,毕竟B是A的内部类,A的实例是可以访问到B的。

posted on 2017-10-29 22:38  Rick Qin  阅读(510)  评论(0)    收藏  举报