Co to jest kompozycja w Javie z przykładami

Opublikowany: 2021-04-09

Java to wszechstronny język, który obsługuje programowanie zorientowane obiektowo i ponowne wykorzystanie kodu z budowaniem relacji między dwiema klasami. W Javie istnieją dwa rodzaje relacji lub skojarzeń, które służą do ponownego wykorzystania kodu i zmniejszenia duplikatów z jednej klasy do drugiej.

Te relacje to IS-A (dziedziczenie) i HAS-A (powiązanie). Chociaż istnieje ścisłe sprzężenie między klasami IS-A, klasy HAS-A są luźno powiązane i bardziej preferowane dla programistów.

Relacja HAS-A dzieli się na dwa typy, mianowicie agregację i kompozycję w Javie . Ten artykuł opiera się na koncepcji kompozycji OOP . Zobaczymy wiele przykładów z życia wziętych pokazujących, jak kompozycja jest zakodowana i jakie korzyści uzyskuje się po jej wdrożeniu.

Spis treści

Krótka opowieść o skojarzeniach lub relacjach w Javie

W programowaniu obiektowym obiekty są ze sobą powiązane i wykorzystują wspólną funkcjonalność między nimi. W tym miejscu pojawiają się tematy dotyczące dziedziczenia, skojarzeń, agregacji i kompozycji w programach Java.

Dziedziczenie (IS-A) i asocjacja (HAS-A) w Javie

1. Dziedziczenie (IS-A)

Relacja IS-A oznacza, że ​​jeden obiekt jest typem innego. Jest realizowany za pomocą słów kluczowych „extends” i „implements”.

Przykład: laptop HP IS-A

2. Stowarzyszenie (HAS-A)

Relacja HAS-A oznacza, że ​​klasa ma relację z inną klasą. Na przykład klasa A przechowuje odniesienie do klasy B i ma dostęp do wszystkich właściwości klasy B.

Przykład: ludzkie ciało ma serce

Źródło

Źródło

3. Agregacja a skład

Relację typu Has-A lub Asocjację można podzielić na agregację i skład. Klasa kontenera agregacji i klasa, do której się odwołuje, mogą istnieć niezależnie. Klasa odniesienia do kompozycji nie może istnieć, jeśli klasa kontenera zostanie zniszczona.

Weźmy przykład, aby zrozumieć agregację i kompozycję. Samochód ma swoje części np. silniki, koła, odtwarzacz muzyki itp. Samochód nie może funkcjonować bez silnika i kół, ale może funkcjonować bez odtwarzacza muzyki. Tutaj silnik i samochód mają relację kompozycji, a samochód i odtwarzacz muzyki mają relację agregacji. W przypadku agregacji obiekt może istnieć, nie będąc częścią obiektu głównego.

Źródło

Kompozycja w języku Java

Kompozycja w Javie między dwoma powiązanymi ze sobą obiektami istnieje, gdy istnieje silny związek między jedną klasą a drugą. Inne klasy nie mogą istnieć bez klasy właściciela lub rodzica. Na przykład klasa „Człowiek” to kompozycja Serca i płuc . Kiedy człowiek umiera, nikt się nie rozstaje.

Kompozycja jest zastrzeżoną formą agregacji. W kompozycji jedna klasa zawiera inną klasę i jest od niej zależna, więc nie może funkcjonować bez innej klasy.

Implementacja kompozycji w Javie

Relacja silnika i samochodu jest zaimplementowana przy użyciu klas Java, jak poniżej. W Javie słowo kluczowe „final” służy do reprezentowania kompozycji. Dzieje się tak, ponieważ obiekt „Właściciel” oczekuje, że obiekt częściowy będzie dostępny i funkcjonował, czyniąc go „ostatecznym” .

Klasa publiczna Samochód {

prywatny silnik końcowy silnika;

samochód publiczny (){

silnik = nowy silnik();

}

}

klasa silnika {

prywatny typ String;

}

Weźmy inny przykład, który przedstawia zarówno dziedziczenie, jak i skład.

Źródło

W tym programie klasa Honda to Samochód i rozciąga się od klasy Samochód. Silnik samochodu Object jest używany w klasie Honda.

klasa Silnik Samochodowy {

public void StartEngine(){

System.out.println(„ Silnik samochodu został uruchomiony .”);

}

public void stopEngine(){

System.out.println(„ Silnik samochodu zatrzymał się .”);

}

}

klasa samochód {

prywatny Kolor sznurka;

prywatny int maxi_Speed;

public void carDetails(){

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

}

//Ustawienie koloru samochodu

public void setColour(ciąg znaków) {

this.color = kolor;

}

//Ustawianie maksymalnej prędkości samochodu

public void setMaxiSpeed(int maxi_Speed) {

this.maxi_Speed ​​= maxi_Speed;

}

}

klasa Honda rozszerza samochód{

public void HondaStart(){

CarEngine Honda_Engine = nowy CarEngine(); //kompozycja

Honda_Silnik.startEngine();

}

}

klasa publiczna Główna {

public static void main(String[] args) {

Honda HondaJazz = nowa Honda();

HondaJazz.setColour(„Czarny”);

HondaJazz.setMaxSpeed(160);

HondaJazz.carDetails();

HondaJazz.HondaStart();

}

}

Wyjście:

Kolor samochodu = czarny; Maksymalna prędkość = 160

Uruchomił się silnik samochodu.

Dane wyjściowe pochodzą z kompozycji i pokazują szczegóły samochodu Hondy Jazz.

Oznaczenia skojarzeń UML

Relacje asocjacji, agregacji i kompozycji w Javie między klasami A i B są reprezentowane w następujący sposób na diagramach UML:

Powiązanie: A—->B

Skład: A—–<wypełniony>B

Agregacja: A—–<>B

Zdobądź dyplomy z inżynierii oprogramowania online na najlepszych światowych uniwersytetach. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Korzyści z komponowania w Javie

Korzystanie z techniki projektowania kompozycji w Javie oferuje następujące korzyści:

  1. Zawsze można „preferować kompozycję obiektów nad dziedziczenie klas”. Klasy osiągają polimorfizm i ponowne użycie kodu poprzez skład.
  2. Kompozycja jest elastyczna, w której można zmienić implementację klasy w czasie wykonywania, zmieniając dołączony obiekt i zmienić jego zachowanie.
  3. Projekt oparty na kompozycji ma mniejszą liczbę klas.
  4. Relacja „HAS-A” między klasami jest semantycznie poprawna niż relacja „IS-A”.
  5. Kompozycja w Javie zapewnia lepszą testowalność klas, co jest szczególnie przydatne w programowaniu opartym na testach.
  6. Możliwe jest osiągnięcie „wielu dziedziczeń” w językach poprzez złożenie wielu obiektów w jeden.
  7. W kompozycji nie ma konfliktu między metodami ani nazwami właściwości.

Wniosek

Kompozycja w Javie ma wiele zalet podczas programowania i jest jedną z ulubionych metod projektowania. W tym artykule staraliśmy się, abyś zrozumiał tę ważną koncepcję za pomocą przykładów z życia wziętych i praktycznego kodu. Kompozycja zapewnia elastyczność i solidny kod. Jego funkcja ponownego wykorzystania kodu pomaga w uniknięciu powielania kodu i osiągnięciu opłacalności. To sprawia, że ​​jest to jedna z powszechnie stosowanych metod w różnych programach.

Naucz się kompozycji w języku Java dzięki kursowi Master of Science in a Computer Science, który ma na celu zachęcić Cię do nauki i doskonalenia umiejętności w zakresie tworzenia oprogramowania.

Uprawnienia

Stopień licencjata AB z 50% lub równoważnymi ocenami. Nie jest potrzebne żadne wstępne doświadczenie w kodowaniu.

cennik

Opłata programowa zaczyna się od Rs.13, 095/miesiąc dla mieszkańców Indii i 5999 USD dla mieszkańców międzynarodowych.

Wyląduj na swojej wymarzonej pracy

Aplikuj na studia magisterskie z zakresu uczenia maszynowego i sztucznej inteligencji