ÜNİTE:
1.3. PROGRAMLAMA
KAZANIMLAR:
1.3.5.1. Çevrimiçi araçları kullanarak belirlenen programlama dilinde ileri uygulamaların yer aldığı özgün proje geliştirir.
PYTHON - Composition (Bileşim) ve Aggregation (Toplama)
Nesne Yönelimli Programlama (OOP) konseptlerinden olan Composition ve Aggregation, sınıflar arası ilişki kurmanın iki farklı yoludur. Her iki yöntem de "bir sınıfın diğer bir sınıfı kullanması" prensibine dayanır, ancak aralarındaki fark, bu ilişkinin derecesinde ve bağımlılık durumundadır.
1. Composition (Bileşim)
Tanım:
Bir sınıf, başka bir sınıfın bir parçası olarak içerildiğinde bileşim oluşur. Bu durumda, içerilen sınıf, kapsayıcı sınıfa tamamen bağımlıdır. Kapsayıcı sınıf yok edilirse içerilen sınıf da yok olur.
Özellikleri:
"Parça-bütün" ilişkisi vardır (örn. bir araba motoru içerir).
Kapsayıcı sınıf, içerdiği nesnelerin sahibidir.
İçerilen nesne, kapsayıcı sınıfın bir parçasıdır ve onun yaşam döngüsüne bağlıdır.
Örnek:
Kullanım:
Yukarıdaki örnekte, Motor sınıfı tamamen Araba sınıfına bağımlıdır. Araba nesnesi yok edilirse, motor da yok olur.
2. Aggregation (Toplama)
Tanım:
Aggregation, bir sınıfın başka bir sınıfı kullanması veya onunla çalışması durumudur. Ancak bu ilişki, bileşimdeki gibi güçlü değildir. Bir sınıf, başka bir sınıfın sahibi değildir. İçerilen nesne bağımsızdır ve başka yerlerde de kullanılabilir.
Özellikleri:
"Parça-bütün" ilişkisi yoktur, daha gevşek bir bağ vardır.
İçerilen nesne, kapsayıcı sınıftan bağımsızdır.
İki sınıf, birbirinden bağımsız olarak var olabilir.
Örnek:
Kullanım:
Yukarıdaki örnekte, Yazar ve Kitap birbirinden bağımsız nesnelerdir. Kitap, Yazar nesnesine referans verir ama ona bağımlı değildir. Aynı yazar, başka kitaplarla da ilişkilendirilebilir.
Composition ve Aggregation Arasındaki Farklar
Özellik | Composition (Bileşim) | Aggregation (Toplama) |
İlişki tipi | Güçlü (sahiplik) | Zayıf (bağlılık yok) |
Bağımlılık durumu | İçerilen nesne, kapsayıcı sınıfa tamamen bağımlıdır. | İçerilen nesne, bağımsız olarak var olabilir. |
Yaşam döngüsü | Kapsayıcı sınıf yok edilirse, içerilen sınıf da yok olur. | Kapsayıcı sınıf yok edilse bile içerilen nesne varlığını sürdürür. |
Kullanım amacı | "Parça-bütün" ilişkisi kurmak. | Birden çok yerde kullanılabilir nesnelerle ilişki kurmak. |
Composition (Bileşim) ve Aggregation (Toplama) Özet Video:
Composition (Bileşim) ve Aggregation (Toplama) Alıştırmaları:
1. Composition (Bileşim) Alıştırmaları
1.1. Kitap ve Bölüm İlişkisi
Bir Kitap sınıfı oluşturun. Bu sınıfın her bir nesnesi, bir veya daha fazla Bolum nesnesini içerir. Her bölümün bir başlığı olsun. Kitap, başlıkları sırayla yazdırabilmelidir.
Çözüm
Açıklama:
Bolum sınıfı: Bir bölümün başlığını tutan sınıf oluşturduk. Bu sınıf, bir kitap nesnesinin parçalarından biri olacak.
Kitap sınıfı: Kitap nesnesi, bir Bolum listesi içerir. Bu, bileşim (composition) ilişkisidir çünkü Bolum nesneleri, Kitap nesnesiyle tamamen ilişkilidir ve tek başına anlamlı değildir.
bolum_ekle metodu: Yeni bir Bolum nesnesini Kitap nesnesine eklemek için kullanılır.
yazdir metodu: Kitabın adı ve bölümlerini ekrana yazdırır.
Kullanım sırasında, önce bir kitap nesnesi oluşturduk ve içine Bolum nesneleri ekledik.
Kullanım:
2. Aggregation (Toplama) Alıştırmaları
2.1. Öğrenci ve Ders İlişkisi
Bir Ogrenci sınıfı oluşturun. Öğrenci, birçok Ders nesnesine sahip olabilir. Ancak dersler, birden fazla öğrenciye ait olabilir.
Beklenen Çıktı:
Çözüm
Açıklama:
Batarya sınıfı: Bataryanın kapasitesini tutar. Bu sınıf, telefon nesnesinin bir parçasıdır.
Telefon sınıfı: Telefon nesnesi, bir Batarya nesnesi içerir. Bu, bileşimdir çünkü batarya bir telefonla ilişkilidir ve onsuz anlam taşımaz.
bilgi_yazdir metodu: Telefonun modeli ve bataryasının kapasitesini ekrana yazdırır.
Kullanım sırasında bir telefon nesnesi oluşturuldu ve otomatik olarak bir batarya nesnesi de oluşturuldu.
Kullanım:
2. Aggregation (Toplama) Alıştırmaları
2.1. Öğrenci ve Ders İlişkisi
Bir Ogrenci sınıfı oluşturun. Öğrenci, birçok Ders nesnesine sahip olabilir. Ancak dersler, birden fazla öğrenciye ait olabilir.
Beklenen çıktı:
Çözüm:
Açıklama:
Ders sınıfı: Derslerin adını tutar. Dersler, bağımsız nesnelerdir ve birçok öğrenci tarafından paylaşılabilir.
Ogrenci sınıfı: Öğrenci nesneleri, bir veya daha fazla Ders nesnesini referans olarak alır. Bu, toplama (aggregation) ilişkisidir çünkü dersler, öğrencilerden bağımsız olarak da var olabilir.
ders_ekle metodu: Öğrenciye bir Ders nesnesi eklemek için kullanılır.
Kullanım sırasında bir öğrenci nesnesi oluşturulmuş ve mevcut Ders nesneleri bu öğrenciye eklenmiştir.
Kullanım:
2.2. Takım ve Oyuncu İlişkisi
Bir Takim sınıfı oluşturun. Her bir takım birden fazla Oyuncu içerir. Oyuncular, farklı takımlara da ait olabilir.
Beklenen Çıktı:
Çözüm:
Açıklama:
Oyuncu sınıfı: Oyuncuların isimlerini tutar. Oyuncular, bağımsız nesnelerdir ve birden fazla takımda yer alabilirler.
Takim sınıfı: Takım nesneleri, bir veya daha fazla Oyuncu nesnesini referans olarak alır. Bu, toplama ilişkisidir çünkü oyuncular takımlardan bağımsızdır.
oyuncu_ekle metodu: Takıma bir oyuncu eklemek için kullanılır.
Kullanım sırasında Oyuncu nesneleri oluşturuldu ve bir takıma eklendi.
Kullanım:
3. İleri Seviye Alıştırma
3.1. Okul, Sınıf ve Öğrenci İlişkisi
Bir Okul sınıfı oluşturun. Her okul birden fazla Sinif içerir ve her sınıf birden fazla Ogrenci içerir.
Bu ilişkilerde:
Okul ve Sınıf ilişkisi bileşim olsun.
Sınıf ve Öğrenci ilişkisi toplama olsun.
Çözüm:
Açıklama:
Bileşim: Okul sınıfı, birden fazla Sinif nesnesi içerir. Bu nesneler okul nesnesine bağlıdır.
Toplama: Sinif sınıfı, birden fazla bağımsız Ogrenci nesnesini içerir.
Kullanım:
Composition (Bileşim) ve Aggregation (Toplama) Alıştırma Çözümleri Özet Video:
Composition (Bileşim) ve Aggregation (Toplama) - Görevler
1. Composition (Bileşim)
1.1. Kitap ve Bölüm İlişkisi
Bir Kitap sınıfı oluşturun. Bu sınıfın her bir nesnesi, bir veya daha fazla Bolum nesnesini içerir. Her bölümün bir başlığı olsun. Kitap, başlıkları sırayla yazdırabilmelidir.
2. Aggregation (Toplama)
2.1. Öğrenci ve Ders İlişkisi
Bir Ogrenci sınıfı oluşturun. Öğrenci, birçok Ders nesnesine sahip olabilir. Ancak dersler, birden fazla öğrenciye ait olabilir.
Beklenen Çıktı:
2. Aggregation (Toplama)
2.1. Öğrenci ve Ders İlişkisi
Bir Ogrenci sınıfı oluşturun. Öğrenci, birçok Ders nesnesine sahip olabilir. Ancak dersler, birden fazla öğrenciye ait olabilir.
Beklenen çıktı:
2.2. Takım ve Oyuncu İlişkisi
Bir Takim sınıfı oluşturun. Her bir takım birden fazla Oyuncu içerir. Oyuncular, farklı takımlara da ait olabilir.
Beklenen Çıktı:
3. İleri Seviye Görev
3.1. Okul, Sınıf ve Öğrenci İlişkisi
Bir Okul sınıfı oluşturun. Her okul birden fazla Sinif içerir ve her sınıf birden fazla Ogrenci içerir.
Bu ilişkilerde:
Okul ve Sınıf ilişkisi bileşim olsun.
Sınıf ve Öğrenci ilişkisi toplama olsun.
Beklenen çıktı:
Ödev:
Bir Okul sınıfı oluşturun. Her okul birden fazla Sinif içerir ve her sınıf birden fazla Ogrenci içerir. Bu ilişkilerde: Okul ve Sınıf ilişkisi bileşim olsun. Sınıf ve Öğrenci ilişkisi toplama olsun. ve oluşturduğunuz kodların fotoğrafını aşağıdaki mail adresine gönderiniz.
Maile isim soy isim, sınıf ve okul numarası bilgilerinizi yazmayı unutmayınız.
egitimdebil@gmail.com
Önerilen program: IDE - PYTHON (Bilgisayarla çalışmayanlar, kodları deftere yazıp fotoğrafını gönderebilirler.)
Bilişim Teknolojileri Öğretmeni: İshak BEZCİ
Son gün ve saat : Pazar gece 12.00
Comments