【问题标题】:Inner class instantiation内部类实例化
【发布时间】:2011-06-28 11:18:00
【问题描述】:

内部类被称为外部类的成员。这是否意味着每当创建外部类的对象时,也会隐式创建内部类的实例?

【问题讨论】:

    标签: java inner-classes


    【解决方案1】:

    没有。内部类的实例只有在实例化时才会创建。

    请注意,内部类的构造函数需要外部类的实例(尽管这被编译器屏蔽了)。这适用于非静态嵌套类。静态嵌套类可以在没有父实例的情况下实例化(因为它们是静态的)

    【讨论】:

    • 但是在现实生活中使用静态内部类吗?
    • 是的,很多。我可能会说的不仅仅是非静态的(虽然我没有数字)
    • @Bozho 哦,我不知道...实际上我在某处读过通常非静态嵌套类,称为内部类...不是静态的...但是你名字旁边的 112K 太多了,不能相信你的话......无论如何谢谢......
    • 112k 与那个特定问题没有太大关系 :) 我不完全确定哪些是最常用的,我只是觉得我看到的静态比非静态更多,但是如果进行统计分析,我可能也错了。
    • @Bozho 正确的术语是 静态嵌套 类。没有任何称为静态内部类的东西。
    【解决方案2】:

    有不同类型的内部类,每一种都有不同的作用。

    • 静态成员类
    • 会员课程
    • 本地类
    • 匿名类

    您可以在此处找到所有这些的概览: http://www.javaworld.com/javaworld/javaqa/2000-03/02-qa-innerclass.html

    【讨论】:

      【解决方案3】:

      这意味着你需要一个外部类的实例才能拥有一个内部类的实例

      【讨论】:

        猜你喜欢
        • 2011-05-03
        • 2015-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-18
        • 2016-06-11
        • 1970-01-01
        • 2012-11-05
        相关资源
        最近更新 更多