Java-Abstraktion - Beherrschung von OOP mit Abstraktion in Java

Dieser Artikel über Java-Abstraktion hilft Ihnen dabei, die Verwendung der abstrakten Klasse und der Schnittstelle zu verstehen und zu erfahren, wie Sie sie mit Abstraction erreichen können.

Im vorherigen Blog haben Sie davon erfahren in Java. Jetzt in diesem Blog werden wir eine weitere wichtige Säule von verstehen d.h. Java-Abstraktion, deren Hauptfunktion darin besteht, die internen Implementierungsdetails auszublenden.

Ich werde die folgenden Themen in diesem Artikel behandeln:



Sie können diese Aufnahme auch durchgehen Hier können Sie die Themen anhand von Beispielen detailliert verstehen.

Abstraktion in OOP

Wenn wir allgemein über Abstraktion sprechen, ist die Software-Sprache ein Beispiel für Abstraktion. Nehmen wir ein Beispiel und schreiben eine Erklärung wie folgt:

x = y + z

wie man ein Double in ein Int verwandelt

In der obigen Anweisung fügen wir zwei Variablen hinzu, die an zwei verschiedenen Orten gespeichert sind, und speichern das Ergebnis dann an einem neuen Ort. Also, was passiert als nächstes? Wie Sie vielleicht wissen, sind Register, Befehlssätze, Programmzähler, Speichereinheiten usw. beteiligt. Wenn wir uns auf Abstraktion in Java beziehen, sprechen wir über Abstraktion in Java und wie es erreicht wird. Das Konzept der Abstraktion in OOP beginnt genau in dem Moment, in dem eine Klasse konzipiert wird. Abstraktion wird überall in Software und OOP angewendet.

Was ist Java-Abstraktion?

Abstraktion ist nichts anderes als die Qualität des Umgangs mit Ideen als mit Ereignissen. Im Grunde geht es darum, die internen Details zu verbergen und dem Benutzer die wesentlichen Dinge zu zeigen.

Aufruf - Java Abstraction -Edureka

Wenn Sie sich das obige GIF ansehen, können Sie sehen, wann Sie einen Anruf erhalten. Wir haben die Möglichkeit, ihn entweder anzunehmen oder einfach abzulehnen. In Wirklichkeit läuft jedoch viel Code im Hintergrund. Hier wissen Sie also nicht, wie ein Anruf intern verarbeitet wird. Das ist das Schöne an der Abstraktion. Sie können Abstraktion auf zwei Arten erreichen:

a) Abstrakte Klasse

b) Schnittstelle

Lassen Sie uns diese Konzepte genauer verstehen.

Abstrakte Klasse

Die abstrakte Klasse enthält das Schlüsselwort 'abstract'. Aber was genau bedeutet das? Wenn Sie die Klasse abstrakt machen, kann sie nicht instanziiert werden, d. H. Sie können kein Objekt einer abstrakten Klasse erstellen. Eine abstrakte Klasse kann sowohl abstrakte als auch konkrete Methoden enthalten.

Hinweis: Mit einer abstrakten Klasse können Sie eine Abstraktion von 0-100% erreichen.

Um eine abstrakte Klasse zu verwenden, müssen Sie sie von der Basisklasse erben. Hier müssen Sie Implementierungen für die abstrakten Methoden bereitstellen, sonst wird es eine abstrakte Klasse.

Schauen wir uns die Syntax einer abstrakten Klasse an:

Abstrakte Klassensportarten {// abstrakte Klassensportarten Abstrakte Leersprung () // abstrakte Methode}

Schnittstelle

Eine Schnittstelle in Java ist eine Sammlung abstrakter Methoden und statischer Konstanten. Wie Sie vielleicht in einer Schnittstelle wissen, ist jede Methode öffentlich und abstrakt, enthält jedoch keinen Konstruktor. Neben der Abstraktion hilft die Schnittstelle auch dabei, eine Mehrfachvererbung in Java zu erreichen.
Hinweis: Sie können eine 100% ige Abstraktion über Schnittstellen erreichen.

Grundsätzlich ist Interface eine Gruppe verwandter Methoden mit leeren Körpern. Lassen Sie uns Schnittstellen verstehen, indem wir ein Beispiel für eine Shape-Schnittstelle mit den zugehörigen Methoden nehmen.

öffentliche Schnittstellenform {public void draw () public double getArea ()}

Diese Methoden müssen in jeder „Form“ vorhanden sein, oder? Aber ihre Arbeit wird anders sein.

Nehmen wir an, Sie möchten eine Form zeichnen, z. B. Kreis, Quadrat, Rechteck usw. Sie wissen bereits, dass jede Form ihre eigenen Abmessungen wie Radius, Höhe und Breite besitzt. Angenommen, ich möchte einen Kreis zeichnen und seine Fläche berechnen. In Anbetracht dessen habe ich im obigen Code zwei Methoden erstellt, nämlich draw () und getArea (). Mit diesen Methoden kann ich nun jede Form zeichnen und die Fläche berechnen, indem ich ihre Schnittstelle implementiere.

Schauen wir uns nun die Funktionen an, wie Sie diese Schnittstelle implementieren können.
Um diese Schnittstelle zu implementieren, ändert sich der Name Ihrer Klasse in eine beliebige Form, beispielsweise 'Kreis'. Um die Klassenschnittstelle zu implementieren, verwende ich das Schlüsselwort 'implement':

public class Circle implementiert Shape {privater doppelter Radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public statisch void main (String args []) {Form c = neuer Kreis (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

Im obigen Beispiel habe ich Funktionen für die verschiedenen Methoden und die berechnete Fläche eines Kreises angegeben. Wenn eine Schnittstelle implementiert wird, kann eine Klasse das von ihr bereitgestellte Verhalten formeller gestalten. Sie können auch eine andere Klasse erstellen, z. B. die Klasse 'Rechteck', die dieselbe Schnittstellenform mit unterschiedlichen Funktionen erben kann.

Echtzeitbeispiel für Abstraktion in Java

Angenommen, wir haben Sport als Schnittstelle. Hier wird die Implementierung durch die Klassen 'Badminton' und 'Fußball' bereitgestellt. In einem realen Szenario ist einem Endbenutzer die Implementierungsklasse nicht bekannt. Daher kann ein Objekt der Implementierungsklasse durch die Factory-Methode bereitgestellt werden. Die Factory-Methode kann verwendet werden, um ein Objekt der Implementierungsklasse basierend auf einem bestimmten Kriterium zu erstellen.
Lassen Sie uns dasselbe implementieren und eine Schnittstelle namens Sport.java erstellen.

public Interface Sport {void play ()} // Jetzt erstellen wir eine Klasse mit dem Namen 'Badminton'. public class Badminton implementiert Sport {@Override public void play () {System.out.println ('Badminton spielen')}} // Als nächstes erstellen wir unsere letzte Klasse 'Fußball'. Öffentliche Klasse Fußball implementiert Sport {@Override public void play () {System.out.println ('Fußball spielen')}

Der letzte Schritt besteht darin, eine Hauptklasse mit dem Namen 'SportInterface' zu erstellen.

public SportInterface {public static void main (String args []) {// dein Code hier}}

Wenn Sie das obige Programm ausführen, erfolgt die Ausgabe wie folgt:

Badminton spielen ------------------- Fußball spielen

Ich hoffe ihr seid klar mit der Oberfläche und wie ihr damit Abstraktion erreichen könnt. Lassen Sie uns diesen Artikel mit einem Vergleich von Abstraktion und Kapselung abschließen.

Abstraktion gegen Verkapselung

Abstraktion Verkapselung
Löst das Problem auf DesignebeneLöst das Problem in der Implementierungsebene
Wird verwendet, um unerwünschte Daten auszublenden und relevante Ergebnisse zu liefernKapselung bedeutet, den Code und die Daten in einer einzigen Einheit zu verstecken, um Daten vor der Außenwelt zu schützen
Äußeres Layout - wird in Bezug auf das Design verwendetInneres Layout - wird in Bezug auf die Implementierung verwendet

Ich hoffe, Sie haben den Unterschied zwischen Abstraktion und Verkapselung verstanden. Damit enden wir im Java Abstraction Blog. Ich hoffe, Sie fanden es informativ und es hat dazu beigetragen, Ihr Wissen aufzuwerten. Wenn Sie mehr über Java erfahren möchten, lesen Sie die

Nachdem Sie „Was ist Java-Abstraktion?“ Verstanden haben, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses 'Java Abstraction' -Blogs und wir werden uns so schnell wie möglich bei Ihnen melden.