Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






N-арная ассоциация







Представим, что в организации положено закреплять за работниками помещения. Добавляем новый класс Room.
Каждому объекты работник(Employee) может соответствовать несколько рабочих помещений. Мощность связи один-ко-многим.
Навигация от Employee к Room.

Рис. 4 — N-арная ассоциация

Теперь попробуем отразить это в коде. Новый класс Room:

 

public class Room{ private int number; public Room(int n){ number = n; } public void setNumber(int newNumber){ number = newNumber; } public int getNumber(){ return number; }}

 

Добавим в класс Employee поле и методы для работы с Room:

 

...private Set room = new HashSet();...public void setRoom(Room newRoom){ room.add(newRoom); }public Set getRoom(){ return room; }public void deleteRoom(Room r){ room.remove(r); }...

 

Пример использования:

 

public static void main(String[] args){ Employee sysEngineer = new Employee(" John", " Connor", " Manager"); IdCard card = new IdCard(123); card.setDateExpire(new SimpleDateFormat(" yyyy-MM-dd").parse(" 2015-12-31")); sysEngineer.setIdCard(card); Room room101 = new Room(101); Room room321 = new Room(321); sysEngineer.setRoom(room101); sysEngineer.setRoom(room321); System.out.println(sysEngineer.getName() +" работает в должности " + sysEngineer.getPosition()); System.out.println(" Удостовирение действует до " + sysEngineer.getIdCard().getDateExpire()); System.out.println(" Может находиться в помещеньях: "); Iterator iter = sysEngineer.getRoom().iterator(); while(iter.hasNext()){ System.out.println(((Room) iter.next()).getNumber()); }}

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.