Java内部类的嵌套

4
如果类C嵌套在类B中,而类B又嵌套在类A中,我该如何实例化类C?
class A {
    class B {
        class C {
            ..............
        }
    }
}
4个回答

3
为了实例化C,您需要一个封闭的B实例,而这个B实例又需要一个封闭的A实例。
A someA = new A();
B someB = a.new B();
C someC = b.new C();

2

像这样应该可以做到

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

如果您想要,可以连接新的()行。


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

        }
    }
}

0
如果类在功能上不依赖于嵌套,即class C不引用class Bclass A的方法和/或字段,则可以将内部类设置为静态。
class A {
    static class B {
        static class C {
            ...
        }
    }
}

然后您可以从任何地方创建它们:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接