Abstraktion vs. Kapselung: Unterschied zwischen Abstraktion und Kapselung

Veröffentlicht: 2021-02-09

Inhaltsverzeichnis

Einführung

Jeder Programmierer strebt danach, einen ordentlichen und sauberen Code zu entwickeln, und er muss eine geeignete Waffe aus Rüstungs- oder OOP-Konzepten verwenden. Die Verwendung geeigneter OOP-Konzepte reduziert die Komplexität und die Entität der Objekte wird von anderen Teilen des Codes getrennt. Außerdem verbessert es die Lesbarkeit und kann bei Bedarf leicht geändert werden.

Außerdem bietet das OOP-Konzept wie Vererbung die Erweiterbarkeit von Code. Diese Konzepte sind hilfreich, um abstrakte Klassen zu definieren, zuvor implementierte Codes zu aktualisieren und eine Anwendung für reale Szenarien zu implementieren.

Abstraktion, Kapselung sind die grundlegenden Konzepte in der objektorientierten Programmierung. Und jeder Programmierer setzt diese Konzepte für einen sauberen und wiederverwendbaren Code um. Aber es gibt eine beträchtliche Anzahl von Unterschieden zwischen diesen beiden Konzepten, lassen Sie uns sie in diesem Artikel verstehen.

Lassen Sie uns zunächst einen kurzen Spaziergang durch die Konzepte der Abstraktion und Kapselung machen.

Abstraktion

Abstraktion ist ein Prozess, bei dem unnötige Daten ausgeblendet und nur relevante Daten angezeigt werden. Aus einem Ozean von Daten halten wir nur die Transparenz einiger Daten für den Benutzer aufrecht. Dieses wichtige Konzept in der objektorientierten Programmierung reduziert die Komplexität des Codes und erhöht die Lesbarkeit.

Nehmen wir beispielsweise an, wir hätten die Aufgabe, ein Online-Portal für die Kursanmeldung zu erstellen, und die uns zur Verfügung stehenden Datenfelder sind {Name, Alter, aktueller Beruf, Hochschulname, Kursname, Zahlungsmethode, Name der Geschwister, Familienstand, Fahrzeug Anzahl}.

Nachdem wir uns die verfügbaren Datenfelder angesehen haben, werden wir feststellen, dass einige der Felder für das Kursanmeldungsportal nicht erforderlich sind, Felder wie {Geschwistername, Familienstand, Fahrzeugnummer} sind für die Kursanmeldung nicht erforderlich.

Wir müssen also spezifisch sein und nur die relevanten Daten auswählen. Jetzt sind die erforderlichen Felder {Name, Alter, aktueller Beruf, Hochschulname, Kursname, Zahlungsmethode}, dies ist ein Beispiel für Abstraktion in OOP, da wir ausgewählte Informationen aus ganzen Daten begleitet haben.

Jetzt können diese neuen Daten auch für einige andere Anwendungen wie Kursstatus-Tracker, Kursabschlussaufzeichnung usw. verwendet werden. Wir können dieselben Daten ohne Änderungen verwenden.

Viele Menschen sind oft verwirrt über Abstraktion und abstrakte Klasse. Sind sie also beide verwandt?

Eine abstrakte Klasse unterscheidet sich von der Abstraktion, abstrakte Klassen/Methoden werden mit der Absicht erstellt, sie in einer untergeordneten Klasse oder Unterklasse zu implementieren. Während die Abstraktion einfach die Daten verbirgt und nur die relevanten Daten anzeigt, indem Zugriffsspezifizierer wie öffentlich, geschützt, privat verwendet werden.

Verkapselung

Kapselung bindet die Datenelemente mit Elementvariablen. Dadurch wird der direkte Zugriff auf Variablen vermieden, da der direkte Zugriff auf Variablen die Privatsphäre verletzen kann und ein Verbergen der Implementierung nicht möglich ist.

Wir haben möglicherweise einige klassische Methoden in der Klasse wie set und get durchlaufen, bei denen die set-Methode verwendet wird, um einen Wert zu aktualisieren oder einer Variablen zuzuweisen, und die get-Methode verwendet wird, um den Wert einer Variablen zu lesen oder abzurufen. Hier können wir mit dem Objekt dieser Klasse direkt auf die Variablen zugreifen, aber wenn wir eine Variable privat machen wollen, sollten wir diese Einstellungen verwenden und Methoden abrufen.

Das Konzept ist einfach, wir machen die set- und get-Methoden öffentlich und die Variablen sind privat. Auf die Variablen kann also nur über die öffentlichen Methoden außerhalb der Klasse zugegriffen werden, da auf private Objekte nicht außerhalb der Klasse, sondern innerhalb der Klasse zugegriffen werden kann. Dieses Konzept, Variablen mit Methoden zu binden oder zu bündeln, wird Kapselung genannt.

Schauen wir uns ein einfaches Java-Programm an, um dies besser zu verstehen.

Klasse Kursanmeldung {
private Zeichenfolge student_name;
private Zeichenfolge Kursname;
öffentlicher String getName (){
Schülername zurückgeben ;
}
public void setName (Zeichenkettenname){
dieser .student_name=name;
}
öffentlicher String getCourse (){
Kursname zurückgeben;
}
public void setCourse (String-Kurs) {
this .course_name=Kurs;
}
}
öffentliche Klasse u pGrad {
public static void main (String[] args){
Kursanmeldung c= neue Kursanmeldung();
c.setName( „mithun“ );
c.setCourse( „Datenwissenschaft“ );
System.out.println(c.getName());
System.out.println(c.getCourse());
}
}

Im obigen Code haben wir eine Klasse CourseRegistration erstellt, in der die Member-Variablen Student Name und Course Name privat sind, aber wir greifen in einer anderen Klasse mit den Funktionen set name und get name darauf zu. In der Hauptklasse haben wir ein Objekt vom Typ CourseRegistration erstellt. Wir initialisieren und greifen auf die Mitgliedsvariablen zu, indem wir die set- und get-Funktionen verwenden.

Nachdem wir nun die Definition und das Beispiel der Abstraktion gesehen haben, wollen wir die Vorteile und Unterschiede zwischen Abstraktion und Kapselung diskutieren.

Vorteile der Abstraktion

  • Der Datenschutz wird gewahrt, da nur relevante Daten für den Benutzer sichtbar sind.
  • Reduziert die Komplexität des Codes und erhöht die Lesbarkeit.
  • Die Klasse, die die Abstraktion implementiert, kann als übergeordnete Klasse verwendet werden, indem sie sie erbt, wodurch die Wiederverwendbarkeit verbessert und die Duplizierung reduziert wird.

Vorteile der Kapselung

  • Es hilft beim Binden der Datenelemente mit Elementfunktionen.
  • Verbessert die Effizienz und ist benutzerfreundlich für die Fehleranalyse.
  • Bietet dem Programmierer Flexibilität bei der Kontrolle der Zugänglichkeit und Transparenz der Daten.

Unterschied zwischen Abstraktion und Kapselung

Definition

  • Abstraktion verbirgt die Details und die Implementierung des Codes.
  • Die Kapselung verbirgt die Daten und steuert die Sichtbarkeit des Codes.

Phase

  • Abstraktion ist ein Prozess auf Designebene.
  • Kapselung ist ein Prozess auf Implementierungsebene.

Zentrale Fähigkeit

  • Bei der Abstraktion geht es nicht um die Implementierung der Klasse, sondern darum, was eine Klasseninstanz tun kann.
  • Die Kapselung hilft bei der Datenbindung und Kontrolle über die Aufrechterhaltung der Transparenz der Daten.

Anwendungsfall

  • Abstraktion ist ein Prozess auf Designebene und wird verwendet, um die Komplexität in der Entwurfsphase eines Projekts zu reduzieren.
  • Die Kapselung ist ein Prozess auf Implementierungsebene und wird verwendet, um Datenschutz zu gewährleisten und die Kontrolle über die Transparenz von Daten in der Implementierungsphase eines Projekts zu behalten.

Wie zu implementieren

  • Abstraktion kann mit Klassen und Schnittstellen in Java erreicht werden.
  • Die Kapselung wird ebenfalls mithilfe von Klassen implementiert, und die Kontrolle über den Datenschutz wird durch die Angabe von Zugriffskennzeichnern wie geschützt, öffentlich oder privat erreicht.

Lernen Sie Softwareentwicklungskurse 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

Wir sind die Bedeutung von OOP-Konzepten durchgegangen und haben die Definition von Abstraktion und Kapselung verstanden. Die Beispiele für Abstraktion und Kapselung durchgegangen. Wir haben uns auch die Vorteile der Verwendung von OOP-Konzepten wie Abstraktion und Kapselung angesehen. Und schließlich sind wir den Unterschied zwischen Abstraktion und Kapselung durchgegangen.

Jetzt, da Sie sich der Definition und Implementierung von Abstraktion und Kapselung bewusst sind, versuchen Sie, sie in Ihrem Code zu implementieren, und versuchen Sie, die Komplexität des Codes zu reduzieren, den Sie von nun an schreiben werden!

Wenn Sie mehr über Java und Full-Stack-Entwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen und mehr als 9 Projekte bietet und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Was ist Abstraktion in der objektorientierten Programmierung?

Abstraktion in der objektorientierten Programmierung ist eine Technik zur Darstellung der High-Level-Informationen zu einem Problem durch Erstellen eines Objekts. Die Abstraktion wird mit Hilfe der Schnittstelle implementiert und die Implementierung der Schnittstelle erfolgt mit dem eigentlichen Code. Abstraktion wird dort implementiert, wo die konkreten Details vor den verbrauchenden Modulen verborgen werden, indem sie mit einer anderen Schnittstelle versehen werden. Die Abstraktion wird implementiert, um die Implementierungsdetails der Low-Level-Details zu verbergen. Es wird auch verwendet, um die komplexen Details zu verbergen und dem Benutzer eine einfachere Schnittstelle bereitzustellen.

Wie funktionieren Klassen und Objekte beim Programmieren?

Klassen und Objekte sind die beiden Hauptkonzepte, die in allen objektorientierten Programmiersprachen verwendet werden. Jede Klasse enthält eine Reihe von Variablen und Methoden, die sie verwenden und manipulieren kann. In einer objektorientierten Programmiersprache haben alle Objekte in einem Programm einen bestimmten Typ, und die Variablen und Methoden eines Objekts können nur von Methoden desselben Typs manipuliert werden. In den meisten objektorientierten Sprachen wird die Klasse verwendet, um ein Objekt zu erstellen und umgekehrt. Ein objektorientiertes Programm besteht aus Objekten, Prozeduren und Datentypen. Alles in einem objektorientierten Programm, einschließlich Daten und Code, ist ein Objekt.

Was sind die Unterschiede zwischen Kapselung und Abstraktion?

Abstraktion ist eine Methode, um unnötige Details im Code zu entfernen und sich auf die relevanten Teile zu konzentrieren. Anstatt beispielsweise eine Funktion zu schreiben, die zwei Zahlen multipliziert, können wir eine Funktion „multiplizieren“ schreiben und sie verwenden, um eine beliebige Zahl mit einer beliebigen Zahl zu multiplizieren. Abstraktion ist eine Möglichkeit, bestimmte Daten darzustellen. Kapselung ist eine Möglichkeit, die Komplexität von etwas zu verbergen und nur die Teile freizulegen, die Sie freilegen möchten. Wenn Sie beispielsweise eine Klasse mit einem oder mehreren privaten Feldern haben, die Sie zum Speichern der Daten verwenden, befinden Sie sich in der Kapselung. Die Klasse enthält die Daten und verfügt über Methoden, die die öffentlichen Daten verfügbar machen.