非静态内部类,在外部其他类中直接调用该类的非静态方法的可以是:
Outer.Inner in = new Outer().new Inner();//创建内部类对象
in.function();//调用内部类方法。
这样是没有问题的
对于静态内部类,在外部其他类中直接调用。如果采用以上方法,这会出现这样的编译错误
InnerDemo.java:83: 限定的新静态类
Outer.Inner in = new Outer().new Inner();
^
1 错误
我知道静态的内部类,在外部其它类中的直接调用非静态方法是:new Outer.Inner().function();这句话意思是先创建一个Outer类对象,
因为内部类Inner是静态的所以不需要创建对象,就直接可调用该类中的非静态方法。
疑问:静态内部类是不需要创建对象该类对象来调用该类方法呢?还是不能够创建静态内部类的对象?还有编译错误中的【限定的新静态类】又是什么意思?
|