Junior
ობიექტზე ორიენტირებული პროგრამირების დროს "მე ვარ" და "მაქვს" ურთიერთობები რას ნიშნავს?
sobes.tech AI
პასუხი AI-სგან
"-a" (is-a) байланыш мурасият. Тарбияланган синф "бир" ата-энеси синф жана анын өзгөчөлүктөрү жана жүрүм-турумду мурас алат.
// Ата-энеси синф
class Animal {
void eat() {
System.out.println("Жаныбар жейт");
}
}
// Тарбияланган синф
class Dog extends Animal {
void bark() {
System.out.println("Ит үңкүйт");
}
}
Бул мисалда, Dog "-a" Animal.
"Мен" (has-a) мамилеси композиция же агрегация. Бир объект башка объектке шилтемени өзүнүн абалынын бир бөлүгү катары ээ болот.
class Engine {
void start() {
System.out.println("Мотор ишке кирди");
}
}
class Car {
private Engine engine; // Машина "мен" моторго ээ
public Car() {
this.engine = new Engine();
}
void drive() {
engine.start();
System.out.println("Машина жүрүп жатат");
}
}
Мында, Car "мен" Engine. Композиция күчтүү байланышту билдирет (ичке объекттин жашоосу аны камтыган объектке көзкаранды), агрегация — алсыз (объекттер өз алдынча болуши мүмкүн). Мисал композицияны көрсөтөт.
Негизги айырмачылыктар:
- "-a" (
is-a) — мурас, түрлердин хиерархиясын аныктайт. - "Мен" (
has-a) — композиция/агрегация, башка объекттерди кошуу аркылуу объекттин түзүлүшүн аныктайт.