Czym jest kompozycja w Javie z przykładami

Opublikowany: 2022-11-19

Wszechstronność języka programowania Java umożliwia ponowne wykorzystanie kodu przy jednoczesnym ograniczeniu duplikatów między klasami. Java ułatwia ponowne wykorzystanie kodu poprzez budowanie relacji między klasami, a te relacje są dwojakiego rodzaju: dziedziczenie i powiązanie. Podczas gdy dziedziczenie pozwala nam zaimplementować relację jest-a i utworzyć nową klasę z istniejącej klasy, powiązanie lub relacja ma-a zapewnia możliwość ponownego wykorzystania kodu.

Relacja ma-a jest dalej podzielona na dwie kategorie: agregacja i kompozycja w Javie . W tym artykule przyjrzymy się koncepcji kompozycji w Javie i pomożemy zrozumieć jej podstawy na przykładach.

Spis treści

Przegląd relacji w Javie

Relacje w Javie odnoszą się do różnych sposobów łączenia klas. Ogólnie rzecz biorąc, w Javie istnieją dwa rodzaje relacji:

  • Jest związkiem
  • Ma związek

Kompozycja w Javie

Źródło

Jest związkiem (dziedziczenie)

Funkcja dziedziczenia w Javie pozwala nam implementować relacje is-a. W takim przypadku jedna klasa dziedziczy inną klasę. Na przykład, jeśli klasa „Kwiat” dziedziczy inną klasę „Lilia”, możemy powiedzieć, że klasa „Lilia” ma relację jest z „Kwiatem”. Oznacza to również, że Lily jest kwiatem.

Przykład: Lilia „jest” kwiatem, komputer „jest” urządzeniem i tak dalej.

Ma związek (powiązanie)

Relacja ma oznacza, że ​​klasa używa instancji innej klasy, a taka relacja w Javie nazywana jest powiązaniem. Na przykład, jeśli klasa P zawiera odniesienie do innej klasy Q, oznacza to, że P może uzyskać dostęp do wszystkich właściwości klasy Q.

Przykład: komputer „ma” procesor, pszczoła „ma” żądło itp.

Powiązanie w Javie jest związkiem między dwiema oddzielnymi klasami przy użyciu ich obiektów. Relacja może być następujących typów:

  • Jeden do wielu: Jeden obiekt jest powiązany z wieloma obiektami.
  • Jeden do jednego: Jeden obiekt jest powiązany z pojedynczym obiektem.
  • Wiele do wielu: Wiele obiektów jest powiązanych z wieloma innymi obiektami.
  • Wiele do jednego: Wiele obiektów jest powiązanych z jednym obiektem.

Asocjacja jest dwojakiego rodzaju: agregacja i kompozycja.

Kompozycja w Javie

Kompozycja w Javie to technika projektowa służąca do implementacji relacji między klasami. W tym powiązaniu jedna klasa zawiera inną klasę. Co więcej, klasa zawarta opiera się na klasie zawierającej i nie może istnieć niezależnie. Innymi słowy, jedna klasa zawiera inną klasę o współzależnej funkcjonalności.

Na przykład klasa „Samochód” zawiera klasy „Silnik” i „Akumulator”. Zatem „Samochód” jest w relacji ma z „Silnikiem” i „Akumulatorem”, a te dwa ostatnie nie mogą istnieć niezależnie bez „Samochodu”.

Rozważmy inny przykład z życia wzięty. Ludzkie ciało ma nerki, a narządy nie mogą istnieć bez ludzkiego ciała. Tak więc, jeśli uważamy, że „Człowiek” jest klasą mającą związek z klasą „Nerki”, jest to kompozycja w przykładzie Java , ponieważ nerki nie mogą istnieć niezależnie bez ludzkiego ciała.

Ekskluzywne seminarium internetowe upGrad na temat tworzenia oprogramowania dla Ciebie —

Biznes SAAS – co jest takiego innego?

Implementacja kompozycji w Javie Przykład

Rozważmy teraz następujący program demonstrujący koncepcję kompozycji w Javie . Podzielimy to na etapy dla lepszego zrozumienia.

Krok 1: W pierwszym kroku utworzymy klasę „Samochód” oraz zadeklarujemy i zdefiniujemy metody i członków danych.

samochód klasy

{

// deklarowanie członków danych i metod

prywatny kolor ciągu;

prywatna prędkość int;

publiczny pusty samochódFeatures()

{

System.out.println("Kolor samochodu="+kolor +" Maksymalna prędkość="+prędkość);

}

public void setColor (kolor ciągu znaków)

{

ten.kolor = kolor;

}

public void setspeed(int speed)

{

ta.prędkość = prędkość;

}

}

Krok 2: Następnie utworzymy klasę „Fiat”, która rozszerza powyższą klasę „Samochód”. Klasa „Fiat” wykorzystuje metodę start() obiektu klasy FiatEngine poprzez kompozycję, co sugeruje, że klasa „Fiat” „ma” FiatEngine. Fiat to samochód, więc wywodzi się z klasy „Samochód”.

klasa Fiat rozszerza samochód

{

//dziedziczy wszystkie właściwości klasy Car

public void setStart()

{

FiatEngine e = nowy FiatEngine();

e.start();

}

}

Krok 3: W następnym kroku programu składu Java utworzymy klasę FiatEngine, za pomocą której użyjemy obiektu klasy w powyższej klasie „Fiat”.

klasa FiatEngine

{

publiczne unieważnienie start()

{

System.out.println("Silnik został uruchomiony.");

}

publiczne nieważne zatrzymanie ()

{

System.out.println("Silnik się zatrzymał.");

}

}

Krok 4: W ostatnim kroku programu utworzymy klasę CompositionExample, utworzymy obiekt klasy „Fiat” i zainicjujemy go.

klasa KompozycjaPrzykład

{

public static void main(String[] args)

{

Fiat f = nowy Fiat();

f.setColor("Czarny");

f.ustawionaprędkość(175);

f.carFeatures();

h.setStart();

}

}

Wyjście:

Kolor samochodu = czarny Maksymalna prędkość = 175

Silnik został uruchomiony.

Ucz się kursów programistycznych online z najlepszych światowych uniwersytetów. Zdobądź programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Agregacja i kompozycja w Javie

Agregacja i kompozycja w Javie to dwa rodzaje relacji ma-a, przy czym oba różnią się pod względem zależności między klasami. W agregacji kontener i klasy referencyjne istnieją niezależnie, podczas gdy klasa referencyjna kompozycji przestaje istnieć bez klasy kontenera. W związku z tym klasa referencyjna jest zależna od swojej klasy kontenera w składzie.

Oto przykład z życia wzięty, aby zrozumieć różnicę między agregacją a kompozycją w Javie . Samochód składa się z różnych części, takich jak silnik, hamulce, akumulator, reflektory, odtwarzacz muzyki itp. Samochód może funkcjonować bez odtwarzacza muzyki, ale nie może działać bez podstawowych części, takich jak silnik lub akumulator. Dlatego możemy powiedzieć, że samochód i odtwarzacz muzyki mają związek agregacji, podczas gdy silnik i samochód mają związek kompozycji.

Jakie są korzyści z używania kompozycji w Javie?

Teraz, gdy masz podstawową wiedzę na temat koncepcji kompozycji w Javie, oto przegląd zalet tej techniki:

  • Kompozycja w Javie ułatwia ponowne wykorzystanie kodu.
  • Kompozycja w Javie pozwala nam kontrolować widoczność innych obiektów dla klas klienckich i ponownie wykorzystywać to, czego potrzebujemy.
  • Chociaż Java nie obsługuje wielokrotnego dziedziczenia, możemy to obejść za pomocą kompozycji.
  • Kompozycja w Javie jest elastyczna i pozwala nam zmieniać obiekty członkowskie w czasie wykonywania, aby zmienić zachowanie programu.
  • Kompozycja Java zapewnia lepszą testowalność klas, cechę szczególnie przydatną w programowaniu opartym na testach.
  • Projekt oparty na kompozycji ma mniej klas.

Popularne kursy i artykuły na temat inżynierii oprogramowania

Popularne programy
Program wykonawczy PG w rozwoju oprogramowania - IIIT B Program certyfikatów Blockchain - PURDUE Program Certyfikatów Cyberbezpieczeństwa - PURDUE Magister informatyki - IIIT B
Inne popularne artykuły
Wynagrodzenie inżyniera chmury w USA 2021-22 Wynagrodzenie architekta rozwiązań AWS w USA Wynagrodzenie programisty backendu w USA Wynagrodzenie programisty front-end w USA
Wynagrodzenie programisty internetowego w USA Pytania do wywiadu ze Scrum Masterem w 2022 roku Jak rozpocząć karierę w cyberbezpieczeństwie w 2022 roku? Opcje kariery w USA dla studentów inżynierii

Wniosek

Kompozycja w Javie jest doskonałą techniką, jeśli relacja między klasami ma wartość a i chcesz ponownie wykorzystać kod. Podsumowując, oto kilka kluczowych punktów, o których musisz pamiętać, jeśli chodzi o kompozycję w Javie:

  • Kompozycja w Javie reprezentuje relację ma-a.
  • W kompozycji jedna klasa zawiera inną klasę, a klasa zawarta opiera się na klasie zawierającej i nie może istnieć niezależnie.
  • Obie jednostki w powiązaniu kompozycji są od siebie zależne.
  • Możemy osiągnąć kompozycję w Javie poprzez zmienną instancji, która odwołuje się do innych obiektów.

Wzbogać swoją karierę dzięki programowi wykonawczemu PG upGrad w zakresie rozwoju oprogramowania

Tworzenie oprogramowania jest jedną z najbardziej lukratywnych opcji kariery dla młodych profesjonalistów. Jeśli jesteś już w branży lub chcesz zacząć, musisz zapisać się do programu Executive PG w zakresie rozwoju oprogramowania firmy upGrad . Program uczy umiejętności, na które jest popyt, oraz dziesięciu najlepiej płatnych języków i narzędzi do kodowania. Możesz wybrać jedną z czterech specjalizacji, w tym Blockchain Development, Full Stack Development, DevOps i Cloud Backend Development.

Oprócz nauki najlepiej płatnych języków programowania możesz pracować nad ponad 30 studiami przypadków i projektami. Światowej klasy wykładowcy biorą udział w wykładach na żywo i sesjach online. Wsparcie dla studentów jest dostępne przez całą dobę.

Aplikuj teraz , aby jak najszybciej dostać się na kurs!

Czym jest kompozycja i dziedziczenie w Javie?

Kompozycja i dziedziczenie w Javie to dwie techniki programowania służące do ustalania relacji między obiektami i klasami. Kompozycja reprezentuje relację ma z jedną klasą zawierającą inną klasę. Z drugiej strony dziedziczenie wykazuje związek jest z jedną klasą nabywającą właściwości i zachowanie innej klasy.

Jaki jest cel kompozycji w Javie?

Kompozycja w Javie umożliwia ponowne użycie kodu i zapewnia lepszą testowalność klasy. Chociaż Java nie obsługuje wielokrotnego dziedziczenia, kompozycja zapewnia na to sposób.

Czy kompozycja jest OOP?

Kompozycja jest podstawową koncepcją w programowaniu obiektowym. Opisuje relację ma, w której jedna klasa odwołuje się do jednego lub więcej obiektów innych klas poprzez zmienne instancji.