class Outer{ class Inner{ void show(){ System.out.println("Inner show"); } } static class Inner2{ void show2() { System.out.println("Inner2 show2"); } static void show3(){ System.out.println("Inner2 show3"); } } }class Demo2{ public static void main(String[] args) { Outer out = new Outer(); Outer.Inner in = out.new Inner(); // Outer.Inner in =new Outer().new Inner(); in.show(); Outer.Inner2 in2 = new Outer.Inner2(); in2.show2(); Outer.Inner2.show3(); }}自学小白,不知道15+16行是否能代替17行,运行时没有问题的,那就姑且默认为可以代替。 我的问题是 当内部类为静态类的时候 访问静态内部类中函数的做法是 20行+21行 那么为什么16行不是写成 Outer.Inner in = new out.Inner();而是 Outer.Inner in = out.new Inner()呢又或者说参照15+16行的话 20行为什么不是Outer.Inner2 in2 = Outer.newInner2()呢这两个冲突么?自学小白,不知道15+16行是否能代替17行,运行时没有问题的,那就姑且默认为可以代替。 我的问题是 当内部类为静态类的时候 访问静态内部类中函数的做法是 20行+21行 那么为什么16行不是写成 Outer.Inner in = new out.Inner();而是 Outer.Inner in = out.new Inner()呢又或者说参照15+16行的话 20行为什么不是Outer.Inner2 in2 = Outer.newInner2()呢这两个冲突么?
1 回答
智慧大石
TA贡献1946条经验 获得超3个赞
调用别的类的方法需要实例化 new
class Program
{
void aa()
{ }
void bb()
{
aa();
em e=new em();
e.cc();
}
}
class Em
{
void cc()
{ }
}
0无
添加回答
举报
0/150
提交
取消