用于组合的Java代码

时间:2013-08-21 07:32:32

标签: java inheritance composition

是否可以在Java中实现组合? 如果我们创建一个A类并在B类中使用该类的实例,那么我们如何确保A不能自己创建一个独立的对象呢?

5 个答案:

答案 0 :(得分:2)

我认为不可能。唯一类似的解决方案是将A创建为B的私有内部类。然后B以外的其他人都不能实例化A。

答案 1 :(得分:1)

您可以将组合的类作为容器类的内部类。

class ContainerClass{

    class ContainedClass1{

    }

    class ContainedClass2{

    }

}

这样,它们与ContainerClass的实例绑定,如果没有相同的实例则无法创建。您可以将它们设为私有,然后只能在类

中创建它们

答案 2 :(得分:0)

如果我理解你的问题是正确的,你想要的是一个内在的阶级。基本上,要创建一个内部类,您需要在类B中编写类A.

答案 3 :(得分:0)

您可以将A类创建为B的静态内部类,并将A的构造函数保持为私有。然后只有B可以使用这个构造函数。

一些参考链接:

scope of private constructor in Nested Class

答案 4 :(得分:0)

也许您可以使用classLoaders来确定A类是否从B加载