Sobes.tech
Junior

Obyekt yönümlü proqramlaşdırmada "mən" və "sahibəm" münasibətləri nə anlama gəlir?

sobes.tech Süni İntellekt

AI-dan cavab

"-a" (is-a) münasibəti irsiyyətdir. Törəmə sinif "bir" valideyn sinifdir və onun xüsusiyyətlərini və davranışlarını miras alır.

// Valideyn sinfi
class Animal {
    void eat() {
        System.out.println("Heyvan yeyir");
    }
}

// Törəmə sinfi
class Dog extends Animal {
    void bark() {
        System.out.println("İt havlayır");
    }
}

Bu nümunədə, Dog "-a" Animal.

"Mənim" (has-a) münasibəti kompozisiya və ya agregasiyadır. Bir obyekt başqa obyektə onun vəziyyətinin bir hissəsi kimi istinad edir.

class Engine {
    void start() {
        System.out.println("Mühərrik işə düşdü");
    }
}

class Car {
    private Engine engine; // Maşın "mənim" mühərrikim var

    public Car() {
        this.engine = new Engine();
    }

    void drive() {
        engine.start();
        System.out.println("Maşın hərəkətdə");
    }
}

Burada, Car "mənim" Engine-im var. Kompozisiya güclü əlaqəni ifadə edir (daxil olan obyektin həyat dövrü onu daxil edən obyektə bağlıdır), agregasiya isə zəifdir (obyektlər müstəqil mövcud ola bilər). Nümunə kompozisiyanı göstərir.

Əsas fərqlər:

  • "-a" (is-a) — irsiyyət, tiplər hierarxiyasını müəyyən edir.
  • "Mənim" (has-a) — kompozisiya/agregasiya, obyektin strukturunu digər obyektlərin daxil edilməsi ilə müəyyən edir.