Co to jest kompozycja w Javie z przykładami
Opublikowany: 2021-04-09Java 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:
- Zawsze można „preferować kompozycję obiektów nad dziedziczenie klas”. Klasy osiągają polimorfizm i ponowne użycie kodu poprzez skład.
- Kompozycja jest elastyczna, w której można zmienić implementację klasy w czasie wykonywania, zmieniając dołączony obiekt i zmienić jego zachowanie.
- Projekt oparty na kompozycji ma mniejszą liczbę klas.
- Relacja „HAS-A” między klasami jest semantycznie poprawna niż relacja „IS-A”.
- Kompozycja w Javie zapewnia lepszą testowalność klas, co jest szczególnie przydatne w programowaniu opartym na testach.
- Możliwe jest osiągnięcie „wielu dziedziczeń” w językach poprzez złożenie wielu obiektów w jeden.
- 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.