public class A{
private B b;
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
static class B{
private C c;
public C getC() {
return c;
}
public void setC(C c) {
this.c = c;
}
}
static class C {
private Integer a;
public Integer getA() {
return a;
}
public void setA(Integer a) {
this.a = a;
}
}
}
如何获取C类的变量a?
A a = new A();
a.getB().getC().getA()
A a = new A();
test.getB().getC();
B类弄个public的不就行了吗
之所以叫做内部类,就只能在本类(A)中访问
要取值的话,new C().getA()不就行了
static修饰的类作为静态类,类初始化后内存中就只有一份。
因为C是A的静态内部类,所以可以直接在A类中访问C的,测试代码:
public static void main(String[] args) {
A a = new A();
C c = new C();
c.setA(10);
System.out.println(c.getA());
}
你如果要绕圈子通过B类来获得C类的a属性值,可以如下:
public static void main(String[] args) {
B b = new B();
C c = new C();
b.setC(c);
c.setA(100);
System.out.println(b.getC().getA());
}