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