Sobes.tech
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) — композиция/агрегация, башка объекттерди кошуу аркылуу объекттин түзүлүшүн аныктайт.