Konstantin
Всем здрасти такой вот глупый наверное вопрос.
Композиция, это один класс является частью другого, например двигатель не может существовать без машины, так как класс машина создает себе экземпляр двигателя самостоятельно например в конструкторе.
public class Car{
private Engine engine;
public Car(){
engine = new Engine();
}
}
Агрегация это когда один класс содержит другой класс, например двигатель передается в конструктор автомобиля и уже может существовать без автомобиля, даже если он будет уничтожен.
public class Car{
private Engine engine;
public Car(Engine engine){
this.engine = engine;
}
}
То тогда вопрос, если я создаю двигатель в конструкторе(по сути композиция) и создаю сеттер на двигатель(что уже по сути агрегация), то какое отношение будет иметь класс автомобиль по отношению к классу двигатель? Ведь он получается содержит и композицию и агрегацию 🤷♂️
public class Car{
private Engine engine;
public Car(){
engine = new Engine();
}
public setEngine(Engine engine){
this.engine = engine;
}
}
Мне интересно, а что тебе даст это знание?