Merhaba arkadaşlar bu yazımda Composition (Oluşum) Nedir olayına değinmek istiyorum.Composition Aggretion olayına göre zıt bir konumdadır.Yani bir class’ın hayatı sonlanınca diğer class’ın hayatıda sonlanacaktır.Buna örnek olarak Fakülte ve Bölüm verilebilir.Fakültemiz içerisinde bölümler mevcut.Fakat fakülte nesnemiz silindiği zaman içerisindeki bölümlerinde bir önemi kalmayacaktır.Yani fakülte içerisindeki bölümlerinde silinme işlemi gerçekleşmesi gerekiyor.Bölüm sınıfımızın hayatı fakülte sınıfının hayatına bağlıdır.Bu olaya Composition olayı denir.
Bölüm ve Fakülte class’larımızı oluşturalım.


Fakülte sınıfı içerisinde bir vektör tanımladım.Bu vektör bana fakülte içerisindeki bolumleri ekleyip çıkarmamı sağlayacak.Bölüm ekle dediğim zaman bölüm nesnesi oluşturup bunu vektörüme ekleme işlemi yapıyor.GetBolumler methodu Iterator’ı kullanarak bölümleri ekrana yazdırıyor.

Test class’ımızda mühendislik isminde bir fakülte oluşturduk.Bu fakülte içerisinde Bilgisayar , Elektrik ve Motor bölümlerini ekledim. Mühendislik içerisindeki bölümleri ekrana yazdır dediğimde ekrana bölümler listelenecektir.Ardından mühendislik nesnemi null değeri atadığım zaman muhendislik.getBolumler(); satırı çalıştığında hata verecektir.Önce o satırı eklemeden çalıştıralım.

Çıktımız bu şekilde olacaktır.Mühendislik içerisindeki bölümler null değerine eşitlendi fakat bunları biz listelemediğimiz için herhangi bir hata vermedi.
muhendislik.getBolumler(); satırını açıp çalıştıralım.

Görüldüğü üzere NullPointerException hatası fırlattı.Bu bize mühendislik nesnesinin herhangi bir bölüm içermediğini belirtiyor.Yani biz fakülte sınıfından oluşturduğumuz nesnenin içerisine bölüm eklediğimiz için o fakülte silindiği takdirde o fakülte içerisindeki bölümlerde silinecektir.Yani bölüm sınıfının hayatı fakülte sınıfının hayatı ile bağımlıdır.Bu olaya Composition denir.