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()呢这两个冲突么?
智慧大石