把下面代码填充到位置1和位置2,正确的是( )
class test {
public void fun() {
// 位置1
}
class Inner {
}
public static void main(String[] args) {
test t = new test();
// 位置2
}
}
A. 位置1 new Inner();
B. 位置2 new Inner();
C. 位置1 new t.Inner();
D. 位置1 new test.Inner();
参考解答
A,D
分析
成员内部类,可以在本类的方法内部被直接实例化使用;
但在类外(即main方法当中)必须通过类的实例间接实例化,语法为:外部类对象.new 内部类()
A 正确 B 错误 必须使用 t.new Inner() 在类外创建内部类的实例 C 错误 t未定义 D 正确 与 A 选项相比加上了类的全限定名,语法上是等价的