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.