首页 > 解决方案 > 内部类作为外部类的一部分

问题描述

假设我有一家玩具店。我有一个可以购买这些玩具的网页。每个玩具都有自己的特征,但为了表示一个人类玩具,我有一个名为的类HumanToy,它具有一些属性,如高度、重量……但我有一个嵌套属性,它本身就是一个 JavaBean HumanLegs,并且这个类有它自己的特征,例如:

public class HumanToy {     

    private Double height;
    private Double weight;

    private HumanLegs humanLegs;

    private class HumanLegs {

        private Double height;
        private Double weight;
    }

我的问题是:

这个玩具有一个静态HumanLegs类有什么意义吗?我的意思是,从概念上讲,HumanLegs它们不能单独存在,它们只存在于一个玩具中,所以我认为它首先是一个内部类(不是一个分离的类),其次不是静态的,出于同样的原因,我的意思是,只有实例化一个HumanToy你可以得到一个HumanLegs对象或者HumanLegs你需要一个对象来得到一个HumanToy对象。这是正确的想法吗?

标签: javainner-classes

解决方案


是的,这是有道理的,因为HumanLegs保留了对他的外部类的引用。如果将实例移动HumanLegs到另一个实例,则不会删除HumanToy原始实例,因为确实保留了对它的引用。HumanToyHumanLegs

因此,外部类在内存中的保存时间至少与内部类的所有实例一样长。


推荐阅读