w ostatnim artykule omówiliśmy pojęcia OOPs. Jeśli jeszcze go nie sprawdziłeś, Gorąco polecam ci go przeczytać, abyś miał podstawowy przegląd wszystkich pojęć programowania zorientowanego obiektowo. W tym przewodniku omówimy cztery ważne funkcje OOPs za pomocą rzeczywistych przykładów.
podejście obiektowe : wprowadzenie
Java jest językiem zorientowanym obiektowo, ponieważ zapewnia funkcje do implementacji modelu obiektowego., Cechy te obejmują abstrakcję, enkapsulację, dziedziczenie i polimorfizm.
Oops polega na rozwijaniu aplikacji wokół jej danych, czyli obiektów, które zapewniają dostęp do ich właściwości i możliwych operacji na swój własny sposób.
abstrakcja
jednym z najbardziej fundamentalnych pojęć OOPs jest abstrakcja. Abstrakcja to proces, w którym pokazujesz tylko” istotne „dane i” ukrywasz ” niepotrzebne szczegóły obiektu przed użytkownikiem., Na przykład, gdy logujesz się do swojego konta Amazon online, wpisujesz user_id i hasło i naciskasz login, co się dzieje po naciśnięciu login, jak dane wejściowe wysłane do serwera amazon, jak zostają zweryfikowane, są abstrakcyjne od Ciebie.
kolejny przykład abstrakcji: samochód sam w sobie jest dobrze zdefiniowanym obiektem, który składa się z kilku innych mniejszych obiektów, takich jak system przekładni, mechanizm kierowniczy, silnik, które ponownie mają swoje własne podsystemy., Ale dla ludzi samochód jest jednym pojedynczym obiektem, który może być zarządzany za pomocą jego podsystemów, nawet jeśli ich wewnętrzne szczegóły są nieznane.
enkapsulacja
ten post zawiera teoretyczne wyjaśnienie enkapsulacji za pomocą rzeczywistych przykładów. Szczegółowe wyjaśnienia na ten temat z programami java patrz enkapsulation in java with example.
enkapsulacja to:
- powiązanie danych z kodem, który je manipuluje.
- chroni dane i Kod przed zakłóceniami zewnętrznymi
patrząc na przykład mechanizmu wspomagania kierownicy samochodu., Wspomaganie kierownicy samochodu to złożony system, który wewnętrznie ma wiele elementów ściśle ze sobą połączonych, działają synchronicznie, aby obrócić samochód w pożądanym kierunku. Kontroluje nawet moc dostarczaną przez silnik do kierownicy. Ale do świata zewnętrznego jest tylko jeden interfejs jest dostępny, a reszta złożoności jest ukryta. Ponadto jednostka sterująca sama w sobie jest kompletna i niezależna. Nie wpływa to na funkcjonowanie żadnego innego mechanizmu.
podobnie, ta sama koncepcja enkapsulacji może być zastosowana do kodu., Kod zamknięty powinien mieć następujące cechy:
- każdy wie, jak do niego uzyskać dostęp.
- może być łatwo używany niezależnie od szczegółów implementacji.
- nie powinno być żadnych skutków ubocznych kodu, do reszty aplikacji.
ideą enkapsulacji jest utrzymywanie klas W separacji i zapobieganie ich ścisłemu powiązaniu ze sobą.
przykładem enkapsulacji jest klasa java.util.Hashtable. Użytkownik wie tylko, że może przechowywać dane w postaci pary klucz/wartość w Hashtable i że może pobrać te dane na różne sposoby., Jednak faktyczna implementacja, jak i gdzie dane te są faktycznie przechowywane, jest ukryta przed użytkownikiem. Użytkownik może po prostu używać Hashtable wszędzie tam, gdzie chce przechowywać pary klucz / wartość, nie martwiąc się o jego implementację.
dziedziczenie
ten post zawiera teoretyczne wyjaśnienie dziedziczenia z prawdziwymi przykładami. Aby uzyskać szczegółowe wyjaśnienie na ten temat w programach java, zapoznaj się z dziedziczeniem z przykładami i typami dziedziczenia w Javie.
- Dziedziczenie jest mechanizmem, za pomocą którego obiekt nabywa niektóre / wszystkie właściwości innego obiektu.,
- wspiera koncepcję klasyfikacji hierarchicznej.
na przykład: Samochód jest pojazdem czterokołowym, więc załóżmy, że mamy klasę czterokołowca i jego podklasę o nazwie Car
. Tutaj samochód nabywa właściwości klasy FourWheeler
. Inne klasyfikacje mogą być jeep, tempo, van itp. FourWheeler określa klasę pojazdów, które mają cztery koła i określony zakres mocy silnika, nośności itp., Samochód (określany jako podklasa) nabywa te właściwości od FourWheeler i ma pewne specyficzne właściwości, które różnią się od innych klasyfikacji FourWheeler, takie jak luksus, komfort, kształt, rozmiar, użytkowanie itp.
samochód może mieć inną klasyfikację, taką jak samochód otwarty, mały samochód, duży samochód itp., który nabywa właściwości zarówno od czterokołowca, jak i samochodu, ale nadal będzie miał pewne specyficzne właściwości. W ten sposób poziom hierarchii można rozszerzyć na dowolny poziom.
klasy Java Swing i Awt stanowią najlepsze przykłady dziedziczenia.,
polimorfizm
w tym poście przedstawiono teoretyczne wyjaśnienie polimorfizmu na rzeczywistych przykładach. Aby uzyskać szczegółowe wyjaśnienie na ten temat z programów java patrz polimorfizm w Javie i runtime & polimorfizm w czasie kompilacji.
- polimorfizm oznacza przetwarzanie obiektów w różny sposób w zależności od ich typu danych.
- innymi słowy oznacza, jedną metodę z wieloma implementacjami, dla pewnej klasy działań. I o tym, która implementacja ma być użyta, decyduje w czasie wykonywania w zależności od sytuacji (tj.,, typ danych obiektu)
- można to zaimplementować poprzez zaprojektowanie interfejsu generycznego, który dostarcza metody generyczne dla określonej klasy działania i może istnieć wiele klas, które zapewniają implementację tych metod generycznych.
pozwala nam spojrzeć na ten sam przykład samochodu. Samochód ma układ przeniesienia napędu. Posiada cztery biegi przednie i jeden bieg wsteczny. Gdy silnik jest przyspieszany, a następnie w zależności od tego, który bieg jest włączony różne moc ilość i ruch jest dostarczany do samochodu., Akcja jest taka sama, ale w zależności od rodzaju biegu akcja zachowuje się inaczej lub można powiedzieć, że wykazuje wiele form (polimorfizm oznacza wiele form)
polimorfizm może być statyczny i dynamiczny. Przeciążenie metody jest polimorfizmem statycznym, natomiast przeciążenie metody jest polimorfizmem dynamicznym.
- przeciążenie w prostych słowach oznacza więcej niż jedną metodę o tej samej nazwie, która zachowuje się inaczej na podstawie argumentów przekazywanych podczas wywołania metody., Nazywa się to static, ponieważ, która metoda ma być wywołana jest decydowana w czasie kompilacji
- nadrzędne oznacza, że klasa pochodna implementuje metodę swojej super klasy. Wywołanie metody overriden jest rozwiązywane w trybie runtime, tak nazywa się polimorfizm runtime
Dodaj komentarz