给LZ个例子,LZ自己体会吧 class A { A() { System.out.println("outer class"); } class B { B() { System.out.println("inner class"); } }; }class C { C() { A a = new A(); A.B b = a.new B(); //内部类B为非静态,只能用A的实例去创建 A.B bb = new A().new B(); //new A的实例处理,如果B是静态的话,可以直接用new A.B() } }
public class A {
public static class C {
}
}
public class B {
private static A.C ac = new A.C();
public static void main(String[] args) {
System.out.println("ac is " + ac.getClass());
}
}
您再试试?一定报错的
您再试试?一定报错的
public class A {
public C cc = new C();
public class C {
}
}
public class B {
public static void main(String[] args) {
A a = new A();
System.out.println("a.cc is " + a.cc.getClass());
}
}
而是cc.getClass();
一定要加a.吗?不加不是也可以吗?
回去问下你老师就行,自己换台机器!
您知道这是怎么回事吗?能帮我分析分析吗?谢谢
class A {
A() {
System.out.println("outer class");
}
class B {
B() {
System.out.println("inner class");
}
};
}class C {
C() {
A a = new A();
A.B b = a.new B(); //内部类B为非静态,只能用A的实例去创建
A.B bb = new A().new B(); //new A的实例处理,如果B是静态的话,可以直接用new A.B()
}
}