Class scope Person - num. People: int - name: String class Person { private static int num. People; private String name; + get. Name() : String + get. Num. People() : int public String get. Name() public static int get. Num. People() }
Composition A comprises local objects that die when A dies Basket Item class Basket { Item item = new Item(); }
Aggregation comprised of sharable objects Computer Device class Computer { Device dev; Computer(Device dev) { this. dev = dev; } }
Multiplicities Basket 1 Item class Basket { Item item = new Item(); }
Multiplicities Basket 5 Item class Basket { Item[] item = new Item[5]; }
Multiplicities Basket 0. . 1 Item class Basket { // may or may not exist Item item; } i. . j means i <= # objects <= j
Multiplicities Basket 0. . * Item class Basket { List<Item> item. List = new. Array. List<Item>(); } * means no a priori upper limit
Generalization (is a) Person Employee class Person { … } class Employee extends Person { … }
Realization Person Employee interface Person { … } class Employee implements Person { … }