2016-05-07 7 views
0

Я изучаю сертификацию Java 8 Programmer II, и я перехожу к классам отношений, которые могут иметь. Я понимаю состав, но я задавался вопросом, существует ли взаимосвязь между элементами коллекции, которая является переменной класса класса и этого класса. Например, рассмотрите этот код:Имеет ли класс с has-a отношения с объектом Collection отношения с элементами коллекции?

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

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

Мы говорим, что строковые элементы строк имеют отношение к классу A?

ответ

1

Прежде всего, мы должны ясно дать понять, если классы A и String бы в отношениях, если класс A будет иметь простой String поле следующим образом:

public class A { 
    static String aString; 

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

... Я так думаю! И это будет «иметь-реальность» - A имеет-String.

В вашем примере есть коллекция String s. Мы также можем сказать, что класс A имеет-a (много;) String s ... Вы можете себе представить, что класс A имеет много отношений с объектами String; класс A объединяет их в коллекции. Это аналогично хорошо известному составу примера «автомобиль» имеет «колеса».

Вы также можете сказать, что это однонаправленное отношение «один ко многим» (однонаправленное, поскольку только одна сторона этого отношения знает о другом).

1

Я бы сказал, да. Коллекция здесь почти несущественна, это всего лишь деталь реализации отношения «has-a» между классом и строками, чем что-либо еще. Что касается того факта, что это классовые отношения, а не отношения между экземплярами, хорошо, это нормально, пока вы знаете, и это ваше намерение.

0

Has-a and is-a - интуитивные концепции. Они не являются правилами, которые будет проверять компилятор. Это словарный запас, используемый для эффективного общения с другими людьми и использования проектных решений. Значит, класс А имеет эти строки? Да, но вы редко заявляете, что, скорее, вы скажете, что в классе A есть коллекция строк. Простая аналогия заключается в том, что когда вы носите сумку, вы не сразу скажете, что у вас есть книги, скорее всего вы, скорее всего, скажете, что у вас есть сумка с книгами (сборник строк).

+0

Хм .. но я думаю, что я бы сказал, что я несу книги .. – Shoikana

+0

См. Зависит от контекста. Ни один из нас не ошибся. – Cybermonk

 Смежные вопросы

  • Нет связанных вопросов^_^