情况是这样的:
class A {
public static void main(String[] args) {
// 使用B的有参构造方法实例化B,则需要这么写:new B().new C(),否则报错;这是为什么?有待研究,挺有意思
B b = new B(new B().new C());
}
public final String TAG = this.getClass().getSimpleName();
}
class B {
// 类B的实例变量c
public C c;
public B() {
super();
}
public B(C c) {
super();
this.c = c;
}
// B类的内部类C
public class C {
}
}
经过思考,还是遵循java基本语法的
1 c为类B的实例变量,所以必须以B的实例引用才可以
2 由此想到,将class C 改为static class C,则
B b = new B(new B().new C());
需要改为
B b = new B(new B.C());
此时,类C为类B的类变量