4

如果 C 类嵌套在 B 类中,而 B 类又嵌套在 A 类中,我该如何实例化它?

class A {
    class B {
        class C {
            ..............
        }
    }
}
4

4 回答 4

3

要实例化C,您需要一个 的封闭实例B,而后者又需要一个 的封闭实例A

A someA = new A();
B someB = a.new B();
C someC = b.new C();
于 2012-09-20T07:29:30.590 回答
2

像这样的事情应该这样做

A.B.C c = new A().new B().new C();

如果需要,您可以连接 new() 行。

于 2012-09-20T07:35:24.223 回答
1

你可以像这样实例化。

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;
            }

        }
    }
}
于 2012-09-20T07:47:47.530 回答
0

如果类在功能上不依赖于嵌套,即class C不引用或的方法和/或字段,class B那么class A您可以将内部类设为静态。

class A {
    static class B {
        static class C {
            ...
        }
    }
}

然后,您可以从任何您喜欢的地方创建它们:

A.B.C c = new A.B.C ();
于 2012-09-20T07:52:07.280 回答