例子:
class A{
class Inner{}
}
public class Test{
public static void main(String[] args){
A a=new A();
A.Inner inner=a.new Inner();//这行我理解
//A.Inner inner=new A.Inner();//为什么这样不行,有什么区别?
}
}
例子:
class A{
class Inner{}
}
public class Test{
public static void main(String[] args){
A a=new A();
A.Inner inner=a.new Inner();//这行我理解
//A.Inner inner=new A.Inner();//为什么这样不行,有什么区别?
}
}
这个内部类只是一个普通类,它是属于对象的,不是属于A类本身的。
所以如果改成:
class A{
static class Inner{}
}
这个 A.Inner inner=new A.Inner(); 就能通过。
但是 A.Inner inner=a.new Inner(); 就不能通过了,这个是由于这个类已经不属于对应的对象了。