Naucz się abstrakcji danych w Javie

Opublikowany: 2021-11-11

Pojęcie abstrakcji danych można wyjaśnić na przykładzie z życia wziętym. Rozważmy przykład, w którym kierowca jadący pojazdem wie, że użycie hamulców zatrzyma pojazd przed dalszą jazdą. Tak więc jedyną informacją, jaką zna kierowca, jest to, że musi zatrzymać swój pojazd, więc naciska hamulce. Nie zna jednak mechanizmu, w jaki sposób pojazd zatrzymuje się po wciśnięciu hamulca. Tak więc tę koncepcję można porównać do koncepcji abstrakcji danych, w której wyświetlane są tylko informacje, które muszą być znane użytkownikowi. Podstawowe informacje są ukrywane. Jest to więc pojęcie abstrakcji, a kiedy jest stosowane w danych, jest znane jako abstrakcja danych.

Programowanie zorientowane obiektowo zapewnia sposoby wykorzystania koncepcji abstrakcji danych. Java jest jednym z programowania zorientowanego obiektowo, podąża za cechą abstrakcji danych. W tych językach programowania abstrakcyjne klasy i interfejsy są używane do uzyskiwania abstrakcji danych.

Proces abstrakcji danych w Javie odbywa się poprzez klasy abstrakcyjne klasy. Interfejsy są również używane do abstrakcji danych oprócz klas abstrakcyjnych. Słowo kluczowe „abstract” jest używane jako modyfikator bez dostępu dla metod i klas. Klasa zdefiniowana za pomocą słowa kluczowego access jest klasą abstrakcyjną, w której tworzenie obiektów jest niedozwolone. Dostęp do klasy abstrakcyjnej jest możliwy tylko wtedy, gdy jest ona dziedziczona z innej klasy. Metody abstrakcyjne to te metody, których można używać tylko w klasach abstrakcyjnych. Te metody nie mają treści metody.

Podklasa generalnie zapewnia ciało. Klasy abstrakcyjne mogą zawierać metody, które są zarówno zwykłe, jak i abstrakcyjne.

Spis treści

Różnice między klasą abstrakcyjną a metodą abstrakcyjną

Różnice między klasą abstrakcyjną a metodą abstrakcyjną to:

1. Klasy abstrakcyjne to te klasy, które są deklarowane za pomocą słowa kluczowego abstract.

2. Metoda abstrakcyjna to taki rodzaj metody, który zostaje zadeklarowany bez jej implementacji.

3. Klasa abstrakcyjna nie musi zawierać w sobie wszystkich metod metod abstrakcyjnych. Może również zawierać metody, które nie są abstrakcyjne.

4. Ilekroć metoda jest zdefiniowana jako metoda abstrakcyjna, należy ją również ponownie zdefiniować w podklasie. To sprawi, że nadpisanie będzie obowiązkowe, a podklasa będzie abstrakcyjna.

5. Jeśli jakakolwiek klasa zawiera metody abstrakcyjne, niezależnie od tego, czy jest to jedna metoda abstrakcyjna, czy więcej, powinna być zadeklarowana jako abstrakcyjna za pomocą słowa kluczowego abstract.

6. Klasa abstrakcyjna nie może zawierać żadnego obiektu. Nie można użyć nowego operatora do utworzenia wystąpienia klasy abstrakcyjnej.

7. W klasie abstrakcyjnej zawsze występują domyślne konstruktory. Ponadto w klasie abstrakcyjnej mogą znajdować się konstruktory sparametryzowane.

Klasa abstrakcyjna Java

Język programowania Java implementuje abstrakcję poprzez klasy abstrakcyjne. Klasę abstrakcyjną można zdefiniować jako tę, która jest zadeklarowana za pomocą słowa kluczowego „abstract” ze specjalną instrukcją, że te klasy nie mogą zostać utworzone. Te klasy mogą zawierać lub nie zawierać metod abstrakcyjnych.

Składnia klasy abstrakcyjnej w Javie jest pokazana poniżej.

Powyższy kod pochodzi z https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

W powyższej składni można zauważyć, że zarówno abstrakcyjna, jak i nieabstrakcyjna metoda może być zawarta w klasie abstrakcyjnej. Również słowo kluczowe „abstract” jest umieszczane przed deklaracją klasy.

Przeczytaj więcej o klasie abstrakcyjnej java tutaj

Metoda abstrakcyjna Java

Metody abstrakcyjne Java to te metody, które są poprzedzone słowem kluczowym „abstract”, ale nie ma implementacji metod. Metody abstrakcyjne Java są deklarowane w klasie abstrakcyjnej Java.

Z powodu metod abstrakcyjnych klasa abstrakcyjna Java staje się niekompletna, ponieważ metody nie mogą być zaimplementowane. Dlatego włączenie formy abstrakcyjnej do klasy abstrakcyjnej w naturalny sposób powoduje, że klasa abstrakcyjna jest niekompletna.

Jego implementacja w podklasie może wykorzystywać metodę abstrakcyjną. Ta podklasa odziedziczy klasę abstrakcyjną i wykona implementację metod abstrakcyjnych. Ogólna składnia metody abstrakcyjnej to

abstrakcyjna void nazwa metody (lista_parametrów);

Pisząc metodę abstraktu należy zwrócić uwagę na kilka zasad

  • Jeśli klasa zawiera więcej niż jedną metodę abstrakcyjną, stanie się klasą abstrakcyjną.
  • Podczas definiowania klasy i metod abstrakcyjnych nie powinno być żadnych słów kluczowych innych niż „abstrakcyjny”.

Biorąc pod uwagę powyższe punkty, następujące możliwości nie są dozwolone w Javie.

  • finał
  • abstrakcyjny tubylec
  • abstrakcyjne statyczne
  • abstrakcyjny prywatny
  • streszczenie zsynchronizowane
  • streszczenie strictfp

Poniżej pokazano przykład abstrakcji danych w Javie.

https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

Powyższy kod pochodzi z https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

W powyższym kodzie znajduje się klasa Bank. W klasie Bank istnieje abstrakcyjna metoda, którą jest getInterestRate(). Deklarowane są dwie inne klasy BOI i ICICI, które dziedziczą klasę Bank. Te zadeklarowane klasy dziedziczą klasę Bank i dlatego implementują metodę getInterestRate() zwracającą stopy procentowe.

W metodzie podstawowej tworzony jest obiekt Banku. Przedmiotem Banku jest obiekt klasy ICICI, który wyświetla oprocentowanie. W kolejnym kroku tworzony jest również obiekt klasy BOI, w którym wyświetlana jest stopa procentowa.

Abstrakcja danych przez interfejs

Interfejsy są podobne do klas Java, z tą różnicą, że w interfejsie są puste metody. Można go również zdefiniować jako klasy składające się z metod abstrakcyjnych i stałych statycznych. Każda metoda obecna w interfejsie jest publiczna i nie zawiera żadnego konstruktora. Interfejs służy do uzyskiwania abstrakcji danych, a także służy do wykonywania wielu dziedziczeń w Javie.

Oto kilka cech interfejsów w Javie:

  • Interfejsy mogą być używane do osiągnięcia całkowitej abstrakcji.
  • Pojedyncza klasa może używać wielu interfejsów, co prowadzi do uzyskania wielu interfejsów.
  • Interfejsy umożliwiają uzyskanie luźnego sprzężenia.

Składnia interfejsu jest pokazana poniżej:

Powyższa składnia jest używana z https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

Interfejsu można używać za pomocą słowa kluczowego „implementy”.

Kilka różnic między klasami abstrakcyjnymi a interfejsem to:

  • W klasach abstrakcyjnych mogą znajdować się zarówno metody abstrakcyjne, jak i nieabstrakcyjne. Natomiast w interfejsie mogą być obecne tylko metody abstrakcyjne.
  • Zmienne końcowe mogą, ale nie muszą być obecne w klasach abstrakcyjnych. W interfejsach zmienne mogą być ostateczne jako zmienne domyślne.
  • Streszczenie klasy może mieć zmienne, które są nieostateczne, końcowe, niestatyczne lub statyczne. Podczas gdy w interfejsie mogą być obecne tylko zmienne statyczne i końcowe.
  • Klasa abstrakcyjna umożliwia implementację interfejsów. Klasy abstrakcyjnej nie można zaimplementować w interfejsie.
  • Dziedziczenie klasy abstrakcyjnej odbywa się za pomocą słowa kluczowego „extends”. Implementacja interfejsu odbywa się za pomocą słowa kluczowego „implementy”.
  • Klasa abstrakcyjna może implementować wiele interfejsów lub inne klasy mogą być rozszerzane przez klasę abstrakcyjną. Natomiast interfejs może pozwolić na implementację tylko innego interfejsu.
  • Oprócz publicznych członków, oba elementy członkowskie danych, które są chronione i prywatne, są zawarte w klasie abstrakcyjnej. Natomiast członkowie interfejsu są domyślnie publiczni.

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

Wniosek

W artykule opisano koncepcje abstrakcji danych i wymieniono, w jaki sposób można uzyskać abstrakcję danych w Javie. Aby zdobyć więcej doświadczenia w języku programowania Java, możesz sprawdzić kurs rozwoju oprogramowania oferowany przez upGrad. Kurs jest przeznaczony dla pracujących profesjonalistów i przeszkoli Cię w projektach branżowych, które rozwiną wymagane umiejętności programowania. Więcej informacji można znaleźć na naszej stronie internetowej. Aby uzyskać wszelkie informacje i pomoc, można skontaktować się z naszym zespołem pomocy.

Co to jest abstrakcja danych?

Abstrakcja danych to koncepcja projektowania oprogramowania. Problemem, który rozwiązuje, jest tworzenie struktur danych i funkcji, które są niezależne od typów danych, na których operują. Izoluje kod od typów danych i pozwala na użycie tego samego kodu w wielu sytuacjach. Abstrakcję danych uzyskuje się, gdy dane reprezentowane przez strukturę danych i operacje, które można do nich zastosować, są jasno zdefiniowane. Abstrakcja jest niezbędna w tworzeniu oprogramowania. Jest to jedna z podstawowych sił, które prowadzą do prostszego, mniejszego i bardziej niezawodnego oprogramowania. Abstrakcja danych jest istotnym elementem języków wysokiego poziomu.

Jakie są zalety abstrakcji w Javie?

Jak osiągnąć abstrakcję w Javie?

Abstrakcje w javie są wykonywane przy użyciu interfejsów. Aby zaimplementować interfejs, należy również dostarczyć implementację. Właściwie nie ma potrzeby dziedziczenia klas do implementacji interfejsu. Interfejsy są takie same jak każda inna klasa w javie. To, co ich wyróżnia, to fakt, że mają tylko jedną metodę.