2013-08-21 41 views
0

是否可以在Java中實現組合? 如果我們創建一個類A並在類B中使用這個類的一個實例,那麼我們如何確保A不能獨立創建一個獨立的對象?組合的Java代碼

+0

所以基於這樣我得到我可以有把握地得出這樣的結論的答覆除非通過使用內部類(這太明顯了),否則不可能在Java中實現組合。因此,第三方課程永遠不能被列爲組合作品。 –

+0

如果您有一個「無法創建獨立對象」的第三方類,您如何在構圖中使用它? –

+0

@AmitKhanna:當然,我可以創建第三方類的對象。我只是想確認第三方課程不能用於作文(不管我是否可以作出反應)。 –

回答

2

我不認爲這是可能的。唯一類似的解決方案是將A創建爲B的私有內部類。然後除B以外的其他人都不能實例化A.

1

您可以將組合的類作爲您的容器類的內部類。

class ContainerClass{ 

    class ContainedClass1{ 

    } 

    class ContainedClass2{ 

    } 

} 

這樣,他們是綁的ContainerClass一個實例,並沒有相同的實例不能被創建。你可以讓他們私人,然後他們只能在類內創建

+0

可以請你詳細說明或給出比喻性的例子。 –

+0

@qualtar與接受的答案基本相同。 –

0

如果我正確地理解你的問題,你想要的是一個內部類。本質上是創建一個內部類,您可以在類B中寫入A類。

0

也許你可以使用類加載器來確定的B加載或不是A類