Lernen Sie Datenabstraktion in Java
Veröffentlicht: 2021-11-11Das Konzept der Datenabstraktion kann anhand eines Beispiels aus der Praxis erklärt werden. Betrachten wir ein Beispiel, bei dem ein Fahrer, der ein Fahrzeug fährt, weiß, dass das Anwenden von Bremsen das Fahrzeug daran hindern wird, sich weiter zu bewegen. Die einzige Information, die der Fahrer kennt, ist also, dass er sein Fahrzeug anhalten muss, also tritt er auf die Bremse. Aber er kennt den zugrunde liegenden Mechanismus nicht, wie das Fahrzeug stoppt, wenn eine Bremse betätigt wird. Dieses Konzept kann also mit dem Datenabstraktionskonzept verglichen werden, bei dem nur die Informationen angezeigt werden, die dem Benutzer bekannt sein müssen. Die zugrunde liegenden Informationen werden verborgen gehalten. Dies ist also das Konzept der Abstraktion, und wenn es auf die Daten angewendet wird, wird es als Datenabstraktion bezeichnet.
Die objektorientierte Programmierung bietet Möglichkeiten zur Nutzung des Datenabstraktionskonzepts. Java ist eine der objektorientierten Programmierung, folgt dem Merkmal der Datenabstraktion. In diesen Programmiersprachen werden abstrakte Klassen und Schnittstellen verwendet, um eine Datenabstraktion zu erreichen.
Der Prozess der Datenabstraktion in Java wird durch die abstrakten Klassen der Klasse erreicht. Neben abstrakten Klassen werden auch Schnittstellen zur Datenabstraktion verwendet. Das Schlüsselwort „abstract“ wird als Nicht-Zugriffsmodifikator für die Methoden und Klassen verwendet. Bei der Definition mit dem Schlüsselwort access ist eine Klasse eine abstrakte Klasse, in der die Erstellung von Objekten nicht erlaubt ist. Der Beitritt der abstrakten Klasse ist nur möglich, wenn sie von einer anderen Klasse geerbt wird. Abstrakte Methoden sind solche Methoden, die nur in abstrakten Klassen verwendet werden können. Diese Methoden haben keinen Methodenrumpf.
Die Unterklasse stellt im Allgemeinen den Körper bereit. Abstrakte Klassen können sowohl reguläre als auch abstrakte Methoden enthalten.
Inhaltsverzeichnis
Unterschiede zwischen einer abstrakten Klasse und einer abstrakten Methode
Die Unterschiede zwischen einer abstrakten Klasse und einer abstrakten Methode sind:
1. Die abstrakten Klassen sind die Klassen, die mit dem Schlüsselwort abstract deklariert werden.
2. Eine abstrakte Methode ist ein solcher Methodentyp, der ohne seine Implementierung deklariert wird.
3. Eine abstrakte Klasse muss nicht alle abstrakten Methodenmethoden in sich haben. Es kann auch Methoden enthalten, die nicht abstrakt sind.
4. Immer wenn eine Methode als abstrakte Methode definiert wird, sollte sie auch in der Unterklasse erneut definiert werden. Dies macht das Überschreiben obligatorisch und macht auch die Unterklasse abstrakt.
5. Wenn eine Klasse abstrakte Methoden enthält, sei es eine abstrakte Methode oder mehr, sollte sie mit dem Schlüsselwort abstract als abstrakt deklariert werden.
6. Eine abstrakte Klasse kann kein Objekt enthalten. Ein new-Operator kann nicht verwendet werden, um die abstrakte Klasse zu instanziieren.
7. In einer abstrakten Klasse sind immer Standardkonstruktoren vorhanden. Außerdem können parametrisierte Konstruktoren in einer abstrakten Klasse vorhanden sein.
Java Abstract-Klasse
Die Programmiersprache Java implementiert Abstraktion durch abstrakte Klassen. Eine abstrakte Klasse kann als diejenige Klasse definiert werden, die mit dem Schlüsselwort „abstract“ mit einer speziellen Anweisung deklariert wird, dass diese Klassen nicht instanziiert werden können. Diese Klassen können abstrakte Methoden enthalten oder nicht enthalten.
Die Syntax einer abstrakten Klasse in Java ist unten dargestellt.
Der obige Code stammt von https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .
In der obigen Syntax kann beobachtet werden, dass sowohl die abstrakten als auch die nicht abstrakten Methoden in einer abstrakten Klasse enthalten sein können. Außerdem wird das Schlüsselwort „abstract“ vor die Deklaration der Klasse gestellt.
Lesen Sie hier mehr über die Java-Abstract-Klasse
Abstrakte Java-Methode
Abstrakte Java-Methoden sind Methoden, denen das Schlüsselwort „abstract“ vorangestellt ist, aber es gibt keine Implementierung der Methoden. Die abstrakten Java-Methoden werden innerhalb der abstrakten Java-Klasse deklariert.
Aufgrund der abstrakten Methoden wird die abstrakte Java-Klasse unvollständig, da die Methoden nicht implementiert werden können. Daher macht die Aufnahme einer abstrakten Form in die abstrakte Klasse die abstrakte Klasse natürlich unvollständig.
Seine Implementierung in der Unterklasse kann die abstrakte Methode verwenden. Diese Unterklasse erbt die abstrakte Klasse und führt die Implementierung der abstrakten Methoden durch. Die allgemeine Syntax der abstrakten Methode lautet
abstract void methodName (parameter_list);
Beim Schreiben der Abstract-Methode sollten einige Regeln beachtet werden
- Wenn eine Klasse mehr als eine abstrakte Methode enthält, wird die Klasse zu einer abstrakten Klasse.
- Beim Definieren der abstrakten Klasse und Methoden sollten keine anderen Schlüsselwörter als „abstract“ verwendet werden.
In Anbetracht der obigen Punkte sind die folgenden Möglichkeiten in Java nicht erlaubt.
- Finale
- abstrakter Eingeborener
- abstrakte Statik
- abstrakt privat
- abstrakt synchronisiert
- abstrakt strictfp
Ein Beispiel für die Datenabstraktion in Java ist unten gezeigt.
https://www.javatpoint.com/how-to-achieve-abstraction-in-java .
Der obige Code stammt von https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .
Im oben gezeigten Code gibt es eine Klasse Bank. Es gibt eine abstrakte Methode innerhalb der Klasse Bank, nämlich getInterestRate(). Zwei weitere Klassen BOI und ICICI werden deklariert, die die Klasse Bank erben. Diese deklarierten Klassen erben die Klasse Bank und implementieren daher die Methode getInterestRate(), die die Zinssätze zurückgibt.
In der Primärmethode wird ein Objekt der Bank erstellt. Das Objekt der Bank besteht aus einem ICICI-Klassenobjekt, das den Zinssatz anzeigt. Im nächsten Schritt wird auch das Objekt der Klasse BOI angelegt, das den Zinssatz anzeigt.
Datenabstraktion durch die Schnittstelle
Schnittstellen ähneln den Java-Klassen, mit dem einzigen Unterschied, dass es leere Methoden in einer Schnittstelle gibt. Es kann auch als Klasse definiert werden, die aus abstrakten Methoden und statischen Konstanten besteht. Jede in der Schnittstelle vorhandene Methode ist öffentlich und enthält keinen Konstruktor. Die Schnittstelle wird verwendet, um eine Datenabstraktion zu erreichen, und sie wird auch verwendet, um mehrere Vererbungen in Java durchzuführen.
Einige Funktionen von Schnittstellen in Java sind:
- Die Schnittstellen können verwendet werden, um eine vollständige Abstraktion zu erreichen.
- Eine einzelne Klasse kann mehrere Schnittstellen verwenden, die zum Erreichen mehrerer Schnittstellen führen.
- Schnittstellen ermöglichen das Erreichen einer losen Kopplung.
Die Syntax der Schnittstelle ist unten dargestellt:
Die obige Syntax wird von https://www.javatpoint.com/how-to-achieve-abstraction-in-java verwendet .
Eine Schnittstelle kann über das Schlüsselwort „implements“ verwendet werden.
Einige Unterschiede zwischen den abstrakten Klassen und der Schnittstelle sind:
- Innerhalb der abstrakten Klassen können sowohl die abstrakten als auch die nicht abstrakten Methoden enthalten sein. Während in einer Schnittstelle nur die abstrakten Methoden vorhanden sein können.
- Endgültige Variablen können in den abstrakten Klassen vorhanden sein oder nicht. In Schnittstellen können die Variablen als Default-Variablen final sein.
- Die Klassenzusammenfassung kann Variablen haben, die nicht final, final, nicht statisch oder statisch sind. Während in einer Schnittstelle nur statische und endgültige Variablen vorhanden sein dürfen.
- Die abstrakte Klasse ermöglicht die Implementierung von Schnittstellen. Eine abstrakte Klasse kann nicht in einer Schnittstelle implementiert werden.
- Die Vererbung einer abstrakten Klasse erfolgt über das Schlüsselwort „extends“. Die Implementierung der Schnittstelle erfolgt über das Schlüsselwort „implements“.
- Die abstrakte Klasse kann mehrere Schnittstellen implementieren, oder andere Klassen können durch die abstrakte Klasse erweitert werden. Während eine Schnittstelle die Implementierung nur einer anderen Schnittstelle ermöglichen kann.
- Abgesehen von öffentlichen Membern sind sowohl geschützte als auch private Datenmember in einer abstrakten Klasse enthalten. Wohingegen die Mitglieder einer Schnittstelle standardmäßig öffentlich sind.
Lernen Sie Softwarekurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Fazit
Der Artikel hat die Konzepte der Datenabstraktion beschrieben und aufgelistet, wie die Datenabstraktion in Java erreicht werden kann. Um mehr Erfahrung in der Programmiersprache Java zu sammeln, können Sie den von upGrad angebotenen Softwareentwicklungskurs besuchen. Der Kurs richtet sich an Berufstätige und schult Sie mit branchenorientierten Projekten, die die erforderlichen Programmierkenntnisse entwickeln. Weitere Informationen können über unsere Website abgerufen werden. Für Informationen und Hilfe kann unser Team von Assistenz kontaktiert werden.
Datenabstraktion ist ein Softwaredesignkonzept. Das Problem, das es löst, besteht darin, Datenstrukturen und Funktionen zu erstellen, die unabhängig von den Datentypen sind, auf denen sie arbeiten. Es isoliert den Code von Datentypen und ermöglicht die Verwendung desselben Codes in mehreren Situationen. Datenabstraktion wird erreicht, wenn die Daten, die durch die Datenstruktur dargestellt werden, und die darauf anwendbaren Operationen klar definiert sind. Abstraktion ist in der Softwareentwicklung von entscheidender Bedeutung. Es ist eine der grundlegenden Kräfte, die zu einfacherer, kleinerer und zuverlässigerer Software führen. Datenabstraktion ist ein wesentlicher Bestandteil von Hochsprachen. Abstraktionen in Java werden mit Schnittstellen durchgeführt. Um die Schnittstelle zu implementieren, muss man auch die Implementierung bereitstellen. Tatsächlich besteht keine Notwendigkeit, Klassen zu erben, um die Schnittstelle zu implementieren. Schnittstellen sind wie jede andere Klasse in Java. Was sie unterscheidet, ist die Tatsache, dass sie nur eine Methode haben.Was ist Datenabstraktion?
Was sind die Vorteile der Abstraktion in Java?
Wie erreicht man Abstraktion in Java?