因为Inner是个静态内部类 所以只需要外部类Outer实例化就可以用 即new Outer().Inner() 不需要new Outer().new inner()也可以用
在别的包中只要import foo 然后new 出Outer实例就可以用Inner
因此B C D都不对
A的话Outer要有括号 new Outer().Inner()
如果Inner不是static类型就要new Outer().new inner()才能用内部类
答案是A,是关于内部类实例化的一道题。
Java中的内部类共分为四种:
静态内部类static inner class (also called nested class)
成员内部类member inner class
局部内部类local inner class
匿名内部类anonymous inner class
静态内部类Static Inner Class
最简单的内部类形式。
类定义时加上static关键字。
不能和外部类有相同的名字。
被编译成一个完全独立的.class文件,名称为OuterClass$InnerClass.class的形式。
只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法。
生成静态内部类对象的方式为:
OuterClass.InnerClass inner = new OuterClass.InnerClass();
d吧
内部类加了static就是外部类
可以通过new inner()来构造Inner对象
A 可以看下匿名内部了
A是对的啊,