[英]Nesting Java Inner Classes
如果C类嵌套在B类中,而B类又嵌套在A类中,该如何实例化呢?
class A {
class B {
class C {
..............
}
}
}
要实例化C
,您将需要B
的封闭实例,而后者又需要A
的封闭实例。
A someA = new A();
B someB = a.new B();
C someC = b.new C();
这样的事情应该做
A.B.C c = new A().new B().new C();
如果需要,可以串联new()行。
您可以像这样实例化。
A a = new A();
A.B b = a.new B();
A.B.C c = b.new C();
这有效..
public class InnerClassTest1 {
public static void main(String[] args) {
A a = new A();
A.B b = a.new B();
A.B.C c = b.new C();
c.setValue(100);
System.out.println("Innermost value " + c.getValue());
}
}
class A {
class B {
class C {
int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
}
}
如果类在功能上不依赖于嵌套,即class C
不引用class B
或class A
方法和/或字段,则可以使内部类静态。
class A {
static class B {
static class C {
...
}
}
}
然后,您可以从任意位置创建它们:
A.B.C c = new A.B.C ();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.