Sobes.tech
Junior

Nesne yönelimli programlamada "söz konusu" ve "sahip" ilişkileri ne anlama geliyor?

sobes.tech yapay zeka

AI'dan gelen yanıt

"İşte-" (is-a) ilişkisi kalıtımdır. Alt sınıf "bir" ana sınıf ve onun özelliklerini ve davranışlarını miras alır.

// Ana sınıf
class Animal {
    void eat() {
        System.out.println("Hayvan yiyor");
    }
}

// Alt sınıf
class Dog extends Animal {
    void bark() {
        System.out.println("Köpek havlar");
    }
}

Bu örnekte, Dog "bir" Animal.

"Sahip ol" (has-a) ilişkisi, bileşim veya bütünleşmedir. Bir nesne, durumunun bir parçası olarak başka bir nesneye referans "sahip" olur.

class Engine {
    void start() {
        System.out.println("Motor çalıştı");
    }
}

class Car {
    private Engine engine; // Araba "sahip" bir motor

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

    void drive() {
        engine.start();
        System.out.println("Araba gidiyor");
    }
}

Burada, Car "sahip" Engine. Bileşim güçlü bir ilişkiyi ifade eder (içeriğin yaşam döngüsü, onu içeren nesneye bağlıdır), bütünleşme ise daha zayıftır (nesneler bağımsız olarak var olabilir). Örnekte bileşim gösterilmiştir.

Anahtar farklar:

  • "İşte-" (is-a) — kalıtım, türler hiyerarşisini tanımlar.
  • "Sahip ol" (has-a) — bileşim/bütünleşme, nesnenin yapısını diğer nesnelerin dahil edilmesiyle tanımlar.