SCJA: Учебный план

http://www.sun.com/training/catalog/courses/CX-310-019.xml

Типы с плавающей запятой: http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html

Перечисленные типы в Java: http://java.sun.com/docs/books/tutorial/java/javaOO/enum.html
— это конечный набор символьных литералов
представлен как объект первого класса
допускается в операторах case
литералы могут быть любым допустимым идентификатором Java

Интерфейс Java
интерфейс НЕ может содержать какие-либо конкретные реализации методов
интерфейс НЕ является классом любого стиля
интерфейс НЕ является членом класса
Интерфейс определяет набор абстрактных методов, которые могут иметь множество реализаций.

Ассоциация классов, композиция классов, зависимость
Композиции также могут иметь методы навигации, но эти методы НЕ должны передавать ссылки на принадлежащие им объекты. Обычно это достигается путем передачи копии объекта, а не самого принадлежащего ему объекта.

Композиция подразумевает, что объект-владелец управляет жизненным циклом объекта-владельца
Зависимость просто подразумевает, что один объект использует другой объект во время вычислений.

Недостатки надлежащего сокрытия информации?
Доступ к атрибутам объекта влечет за собой штраф во время выполнения. Тем не менее, JVM Sun hotspot обычно может устранить дополнительные накладные расходы, «встраивая» методы там, где они вызываются.

Метод мутатора длиннее, чем операция присваивания,
использование методов для доступа к атрибутам объекта занимает больше времени, чем прямой доступ.

Программа для интерфейса
Ссылки на объекты должны быть объявлены как интерфейсы, а не конкретные классы
переменные ссылки на объекты, которые должны быть как можно более общими. Это принцип «программа к интерфейсу».

правильное представление атрибута в UML

- атрибут: intuml

0..1 указывает ноль или одну множественность, так вы можете представить необязательную ассоциацию.

? НЕ является допустимым индикатором кратности.
* является сокращением от 0..*.
M НЕ является допустимым индикатором кратности.
? НЕ является допустимым индикатором кратности.
0..* именно так указывает ноль или более.