Java'da Kompozisyon nedir? Örneklerle

Yayınlanan: 2023-01-27

İçindekiler

Java'da İlişkilendirmenin Temelleri:

İlişkilendirme, Java'da, farklı nesneleri kullanan iki ayrı sınıf arasındaki bir ara bağlantı olarak tanımlanabilir. Java ilişkilendirmesi tarafından yönetilen ilişki türleri şunlardır:

  • Bire bir: Her üst sınıf için yalnızca tek bir türetilmiş sınıf vardır.
  • Birden çoğa: Tek bir üst sınıfın birden fazla alt sınıfı olabilir.
  • Çoktan bire: Tek bir alt sınıf, birden fazla üst sınıfla ilişkilendirilebilir.
  • Çoktan çoğa: Bir dizi üst sınıf, tek bir alt sınıfla ilişkilendirilebilir ve daha fazla sayıda alt sınıf, tek bir üst sınıfla ilişkilendirilebilir.

İlişki kurulduktan sonra, türetilmiş sınıflar, özelliklerini ve özelliklerini yeniden kullanmak için ilgili temel sınıflarla iletişim kurar. Java'da iki tür ilişkilendirme vardır. Bunlar toplama ve kompozisyondur.

Java'da toplama, bileşime kıyasla daha genelleştirilmiş bir işlemdir. Bu formlar, sınıflar arasında desteklenen ilişkinin türüne bağlıdır.

Java'da Kompozisyona Giriş:

Java'da bir Has-A ilişkisi uygulayan bir tasarım tekniğine kompozisyon denir. Kalıtım süreci, kodu yeniden kullanmak için kullanılır. Java'daki kompozisyon, diğer nesnelere atıfta bulunan bir örnek değişken kullanılarak gerçekleştirilebilir. Bir nesne, başka bir nesneyi, ana nesnenin hayatta kalması olmadan kurucu nesnenin var olamayacağı şekilde oluşturuyorsa, bu tür bir ilişki, kompozisyon olarak adlandırılır. Daha spesifik olmak gerekirse, kompozisyon, örnek değişkenler yardımıyla iki veya daha fazla sınıf arasındaki referansı tanımlayan bir özelliktir. Burada, anlık değişkenler kullanılmadan önce örnek oluşturulmalıdır. 'Kompozisyon' kavramını net bir şekilde anlamak için bir Kütüphane örneğini ele alalım.

Bir kütüphanede çok sayıda kitap bulunur. Her kitabın ayrı yazarları ve başlıkları vardır. Kütüphanede ayrıca kitapların bir referans listesi bulunmalıdır. Kütüphanede ayrıca aynı konu veya farklı konularla ilgili birkaç kitap bulunmaktadır. Burada kütüphane ana sınıfa karşılık gelir ve kitaplar türetilen sınıfla ilişkilendirilebilir. Kitaplar ve kütüphane arasındaki ilişki veya ilişki, kompozisyon olarak kabul edilebilir. Bunun nedeni, "Kitaplar" sınıfının tamamen sınıf kitaplığına bağımlı olmasıdır. Örneğin kütüphane yok edilirse içindeki tüm kitaplar da yok olur.

Rekabette avantaj elde etmek için ücretsiz teknoloji kurslarımıza göz atın.

Popüler Yazılım Mühendisliği Kurslarımızı keşfedin

LJMU & IIITB'den Bilgisayar Bilimlerinde Bilim Ustası Caltech CTME Siber Güvenlik Sertifika Programı
Tam Yığın Geliştirme Eğitim Kampı Blockchain'de PG Programı
Tam Yığın Geliştirmede Yönetici PG Programı
Aşağıda Tüm Kurslarımızı Görüntüleyin
Yazılım Mühendisliği Kursları

Java'da Kompozisyonun ayrıntılı bir açıklaması:

Kompozisyon, Java ilişkilendirmesinin bir biçimidir. İki iletişim sınıfı birbiriyle güçlü bir şekilde bağlantılıdır ve burada türetilmiş sınıf tamamen ana sınıfa bağımlıdır. Türetilmiş sınıfın bağımsız varlığı bu durumda mümkün değildir. Örneğin arabası olmayan bir motor bağımsız olarak var olamaz. Bu ilişkilendirme türü, toplamaya kıyasla oldukça kısıtlıdır. Kompozisyon bir tasarım tekniğidir ve bir Java özelliği ile karıştırılmamalıdır.

Kompozisyon, kurucu üyeleri olarak başka nesnelere sahip nesneleri modellemek için kullanılabilir. Bu nesneler arasında has-a ilişkisi mevcuttur. Bu ilişkilendirme türünde, bir nesne diğer nesneyi içerir. Bu nedenle, kurucu nesne, hayatta kalması için tamamen ana nesneye bağımlıdır. Dolayısıyla, içeren nesne bozulursa, onu oluşturan nesne de etkilenir. Bu nedenle kompozisyon ilişkisi, bütünün bütün olmadan parçanın var olmasının mümkün olmadığı bir parçası olarak görülebilir. Yani bütünün silinmesi üzerine parça da otomatik olarak siliniyor. Bu, bütünün parça ile sıkı bir ilişkisi olduğu anlamına gelir.

Dünyanın En İyi Üniversitelerinden Çevrimiçi Yazılım Geliştirme Kursları Öğrenin. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

İsteğe Bağlı Yazılım Geliştirme Becerileri

JavaScript Kursları Temel Java Kursları Veri Yapıları Kursları
Node.js Kursları SQL Kursları Tam yığın geliştirme Kursları
NFT Kursları DevOps Kursları Büyük Veri Kursları
React.js Kursları Siber Güvenlik Kursları Bulut Bilişim Kursları
Veritabanı Tasarım Kursları Python Kursları Kripto Para Kursları

Kalıtımın Java'daki kompozisyondan farkı nedir?

Kalıtımın işlevselliğinin Java'da kompozisyon kullanılarak da gerçekleştirilebileceğini not etmek önemlidir. İlgili sınıf tarafından kodun yeniden kullanılabilirliğini sağlamak için hem kalıtım hem de kompozisyon kullanılsa da, bu ikisi arasında ince farklar vardır. İki süreç arasındaki temel fark, bir Java özelliği olan kalıtımın aksine, kompozisyonun bir tasarım tekniği olmasıdır. İkisi arasındaki diğer önemli farklar aşağıdaki tabloda listelenmiştir.

Parametre

Kompozisyon

Miras

Temel Bir HAS-A ilişkisi içerir. Bir IS-A ilişkisi içerir.
Kodun yeniden kullanımı Kod, birden çok sınıfta yeniden kullanılabilir. Bir sınıf tarafından yalnızca bir arabirim genişletilebildiğinden, kodun yeniden kullanımı yalnızca bir sınıfta mümkündür.
Dürbün Çalışma zamanında kolayca gerçekleştirilebilir. Özellikler derleme zamanında daha iyi gerçekleştirilir.
son Son sınıflardan bile kodun yeniden kullanılmasını kolaylaştırır. Nihai sınıflardan gelen kod, kalıtım durumunda yeniden kullanılamaz.
Yöntemler Yöntemler açığa çıkmaz. Genel arayüzler, etkileşimleri için kullanılır. Kalıtım, temel sınıfın hem korumalı hem de genel yöntemlerini gösterir.

Toplama ve Kompozisyon arasındaki farklar:

Toplama

Kompozisyon

Bir tür zayıf Java ilişkilendirmesidir. Toplama ile karşılaştırıldığında daha güçlü bir ilişkilendirme türüdür.
Türetilmiş sınıf, temel sınıftan bağımsızdır. Bu nedenle, türetilmiş sınıf, temel sınıf yok edilse bile var olmaya devam edebilir. Türetilmiş sınıf tamamen temel sınıfa bağımlıdır. Bu nedenle, üst sınıf yok edilirse alt sınıf var olamaz.
Alt sınıfın kendi ömrü vardır. Alt sınıfın ömrü, üst sınıfa bağlıdır.
Üst sınıf, bu tür ilişkilendirmede alt sınıfı kullanır. Bu nedenle, türetilmiş sınıf, temel sınıfa ait değildir. Bu ilişkilendirme türünde, üst sınıf, alt sınıfın sahibidir. Bu nedenle, ana sınıf, alt sınıfın sahibidir.
HAS-A ilişkisi oluşturur. Türetilmiş sınıfın bir temel sınıfı vardır. İlişkinin bir parçasını oluşturur. Türetilmiş sınıf, temel sınıfın bir parçasıdır.
Nihai anahtar kelime, toplamayı belirtmek için kullanılmaz. Nihai anahtar kelime, kompozisyonu belirtmek için kullanılabilir.
Örnek: Arabanın bir sürücüsü var. Örnek: Motor arabanın bir parçasıdır.

Yazılım Geliştirme ile ilgili Popüler Makalelerimizi okuyun

Java'da Veri Soyutlama Nasıl Uygulanır? Java'da İç Sınıf nedir? Java Tanımlayıcıları: Tanım, Sözdizimi ve Örnekler
OOPS'de Kapsüllemeyi Örneklerle Anlamak C'deki Komut Satırı Argümanları Açıklandı 2022'de Bulut Bilişimin En İyi 10 Özelliği ve Özelliği
Java'da Polimorfizm: Kavramlar, Türler, Özellikler ve Örnekler Java'da Paketler ve Nasıl Kullanılır? Yeni Başlayanlar İçin Git Eğitimi: Git'i Sıfırdan Öğrenin

Java'da Kompozisyon kullanmanın avantajları:

  • Kompozisyon, Java kodunun yeniden kullanımını kolaylaştırır.
  • Birden fazla kalıtım Java tarafından desteklenmese de, boşluk bu tasarım tekniği ile doldurulabilir.
  • Kompozisyon kullanımıyla, bir sınıf yetenek açısından daha iyi bir şekilde test edilebilir.
  • Kod, kompozisyon kullanımıyla daha esnek hale getirilir. Oluşturulan sınıf uygulaması, geliştirilmiş bir sürümle değiştirilebilir.
  • Nesne üyeleri, bir kompozisyon ilişkisi kullanılarak programın davranışının dinamik değişimi için çalışma zamanında değiştirilebilir.

Java'da kompozisyon sınırlamaları:

Java'da kompozisyon kullanmanın birkaç dezavantajı vardır. Nesne kompozisyonunun ana dezavantajı, kullanıcının sadece kaynak kodu üzerinde düşünerek uygulanan sistemin davranışını anlamasının daha zor olmasıdır. Nesne kompozisyonunu kullanan bir sistem doğası gereği oldukça dinamiktir. Bu nedenle, nesne bileşimini kullanan sistemlerin işleyişini anlamak, kaynak kodun daha derin bir analizini ve kaynak koddaki bireysel nesneler arasındaki işleyiş ve işbirliğine tanık olmak için kodu çalıştırmayı gerektirir.

Java, full-stack yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 500 saatten fazla sıkı eğitim sunan upGrad & IIIT-B'nin Yazılım Geliştirme - Tam Yığın Geliştirme Uzmanlığı alanında Yönetici PG Programına göz atın. , 9'dan fazla proje ve ödevler, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarda iş yardımı.

Bu makaleyi paylaşmak istermisiniz?

Geleceğin Kariyerine Hazırlanın

Yazılım Mühendisliği Yüksek Lisans Programına Şimdi Başvur