top of page

Відношення композиції, агрегації й асоціації.

В об'єктно-орієнтованих мовах програмування існує 3 способи організації взаємодії між класами. НАСЛІДУВАННЯ - відношення, за якого клас-наслідник має всі поля й методи батьківського класу, і, як правило, додає якийсь новий функціонал і/або поля.

Наслідування описується словом "є". Легковий автомобіль є автомобілем. Цілком природньо, якщо він буде його наслідником.


'''

class Vehicle {

bool hasWheels;

}


class Car extends Vehicle {

String model = "Porsche";

int numberOfWheels = 4;

}

'''


Асоціація - відношення, за якого один клас містить в собі інший клас в якості одного з полів. Асоціація описується ключовим словом "має". Автомобіль має двигун. Цілком природньо, що він не буде наслідником двигуна (хоча така архітектура можлива в деяких ситуаціях).


Виділяють 2 часткових випадки асоціації: композицію й агрегацію.


Композиція - відношення, за якого двигун не існує окремо від автомобіля. Він створюється при створенні автомобіля й повністю керується автомобілем. У типовому прикладі, екземпляр двигуна створюватиметься в конструкторі автомобіля.


'''

class Engine {

int power;

public Engine (int p) {

power = p;

}

}


class Car {

String model = "Porsche";

Engine engine = new Engine(360);

}

'''


Агрегація - відношення, за якого екземпляр двигуна створюється десь у іншому місці коду й передається до конструктора в якості параметра.


'''

class Engine {

int power;

public Engine (int p) {

power = p;

}

}


class Car {

String model = "Porsche";

Engine engine;

public Car (Engine someEngine) {

this.engine = someEngine;

}

}


Engine goodEngine = new Engine(360);

Car porsche = new Car(goodEngine);

'''


Останні пости

Дивитися всі

Теорія баз даних

База даних - це організована структура, призначена для зберігання, зміни й обробки взаємопов'язаної інформації. Вона може включати...

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page