2016-05-07 42 views
0

我正在學習Java 8 Programmer II認證,我正在考慮關係類可以有的。我理解作文,但是我想知道是否在作爲類和類的類變量的集合的元素之間考慮了關係。例如,考慮以下代碼:具有與Collection對象的關係的類是否與Collection的元素有關係?

public class A { 
    static ArrayList<String> strings = new ArrayList<String>(); 

    public A() { 
     strings.add("foo"); 
    } 
} 

我們是否說字符串的String元素與類A有關係?

回答

1

首先我們要明確,如果類AString將是關係如果類A本來簡單String場像這樣:

public class A { 
    static String aString; 

    public A() { 
     aString = "foo"; 
    } 
} 

...我是這麼認爲的!這將是「有 - 一個」realdonship - A has-a String

在你的例子中有一個String s的集合。我們也可以說類A有-a(很多;)String s ...您可以想象,類AString對象有很多關係;類A將它們集合在一起。這類似於衆所周知的組合物實例「汽車」具有「輪子」

你也可以說這是單向的一對多關係(單向的,因爲只有這個關係的一方知道另一方)。

1

我會說是的。這個集合在這裏幾乎是無關緊要的,更多的僅僅是類和字符串之間的「具有」關係的實現細節。至於這是一個全班級的關係而不是每個實例的關係,好吧,只要你知道,這就是你的意圖。

0

has-a和is-a是直觀的概念。它們不是編譯器會檢查的規則。這是一個共享詞彙,用於與其他人有效溝通並用於制定設計決策。那麼A類「有」那些字符串?是的,但你很少會說,相反你會說A類有一個字符串集合。一個簡單的比喻是,當你揹着一個包時,你不會立刻說你正在攜帶書,而是你最有可能說你揹着一個裝滿書的包(字符串集合)。

+0

嗯..但我想我會說,我正在攜帶書.. – Shoikana

+0

請參閱。取決於上下文。我們兩個都不會是錯的。 – Cybermonk

相關問題