Abstraktion und Encapsulation sind grundlegende Konzepte der objektorientierten Programmierung (OOP), mit denen Sie Objekte der realen Welt in Programme und Codes implementieren können. Während beide Hand in Hand gehen, unterscheiden sie sich stark voneinander. Jede Methode ist eine Kapselung, aber auch eine Abstraktion. In einfachen Worten, wenn Sie verschiedene Dinge zusammenstellen, um eine Entität zu erstellen, erstellen Sie tatsächlich ein Konzept - ein abstraktes Konzept. Während beide technisch untrennbar sind, haben sie buchstäblich nichts gemeinsam. Es ist fast richtig, dass jede Kapselung eine Abstraktion ist, weil sie beide etwas verbergen, jedoch durchaus unterschiedliche Unterschiede aufweisen.
Die Abstraktion ist ein grundlegendes OOP-Konzept, das sich nur auf die relevanten Daten eines Objekts konzentriert und alle irrelevanten Details verbirgt, die für generisches oder spezialisiertes Verhalten gelten können oder nicht. Es verbirgt die Hintergrunddetails und betont die wesentlichen Punkte, um die Komplexität zu reduzieren und die Effizienz zu steigern. Grundsätzlich ist Abstraktion ein Programmierwerkzeug zur Steuerung der Komplexität. Die Abstraktion konzentriert sich eher auf Ideen als auf Ereignisse. Es verbirgt die Details auf der Entwurfsebene, indem den Benutzern Funktionalität bereitgestellt wird. Das resultierende Objekt kann auch als Abstraktion bezeichnet werden. Der Programmierer stellt sicher, dass die benannte Entität alle wesentlichen und nicht die irrelevanten Aspekte enthält.
Nehmen wir ein reales Beispiel für die Abstraktion. Betrachten wir den Fall eines Fahrzeugs, das in diesem Fall Ihr Fahrzeug ist. Ein Mechaniker versucht, Ihr Auto zu reparieren oder einen bestimmten Teil Ihres Autos zu sagen. Hier sind Sie der Benutzer und möchten nicht in die Besonderheiten Ihres Autos einsteigen oder welcher Teil tatsächlich kaputt gegangen ist. Sie interessieren sich eigentlich nicht für diese Dinge; Sie möchten nur, dass Ihr Fahrzeug wieder in den ursprünglichen Zustand versetzt wird, ohne sich um Details zu kümmern. Also haben Sie dem Mechaniker tatsächlich gesagt, was er will, indem er den Implementierungsteil aufteilt. Das ist Abstraktion. Sie haben sich auf das Wesentliche konzentriert, nämlich, dass Sie Ihr Auto reparieren lassen, anstatt sich auf die Besonderheiten zu konzentrieren.
Encapsulation ist ein weiteres OOP-Konzept, das Daten und Funktionen in einer einzigen Komponente zusammenfasst, während der Zugriff auf einige Komponenten eingeschränkt wird. Es ist eines der wichtigsten grundlegenden Konzepte von OOP, bei dem Daten und Informationen unter einer einzigen Einheit zusammengefasst werden. Technisch gesehen bedeutet Kapselung das Verbergen von Attributen, um Variablen vor dem Zugriff von außen abzuschirmen, so dass Änderungen in einem Teil einer Anwendung die anderen Teile nicht beeinflussen. Im Gegenteil, wenn Sie die Informationen offener machen, riskieren Sie einen Missbrauch von Daten. Es gibt den Daten eine grundlegende Integrität, indem sie vor der Außenwelt geschützt werden. In einfachen Worten verbirgt es die zusätzlichen Details vor der Außenwelt.
Nehmen wir als Beispiel eine Bluetooth-Maus. Sie müssen nur über das Verhalten des Geräts Bescheid wissen, ohne sich über die Implementierungsdetails Gedanken zu machen, wie die Sensoren der Maus sind, ob sie drahtlos sind oder nicht usw. Jedes Detail beschreibt die Maus, aber unabhängig von den Details ist es nur eine Maus. Sie benötigen lediglich eine Schnittstelle, um die Maus zu verwenden, in diesem Fall den Mauszeiger. Dies ist die Einkapselung.
Beide sind grundlegende Konzepte, die sich auf OOP beziehen, und sie sind technisch untrennbar, sie unterscheiden sich jedoch in vielen Aspekten.
Abstraktion | Verkapselung |
Es behandelt nur die relevanten Details, indem die irrelevanten Details versteckt werden, um die Komplexität zu reduzieren und die Effizienz zu steigern. | Es bindet die Daten und Informationen in einer Einheit, um die Daten vor externen Quellen zu schützen. |
Es bezieht sich auf die Idee, Daten zu verbergen, die nicht für Präsentationszwecke benötigt werden. | Es verbirgt die Daten und den Code, um unerwünschten Zugriff einzuschränken. |
Es konzentriert sich auf was und nicht wie. | Es verbirgt die inneren Mechanismen, wie etwas getan wird. |
Es verbirgt die unnötigen Details auf der Designebene. | Es verbirgt auch die Details aber auf der Implementierungsebene. |
Informationen und Daten werden von den relevanten Daten getrennt. | Die Informationen sind für einen schnellen Zugriff in einer Kapsel versteckt. |
Es handelt sich eher um Ideen als um Ereignisse. | Die Idee ist, die Daten von außen zu schützen. |
Es wird mit abstrakten Klassen und Schnittstellen implementiert. | Es wird mit geschützten, privaten und privaten Paketen für Zugriffsmodifizierungen implementiert. |
Obwohl es sich bei beiden um OOP-Konzepte handelt, die sich auf das Verbergen von Daten beziehen, unterscheiden sie sich ziemlich voneinander. Die Abstraktion bezieht sich auch auf das Verstecken wie die Einkapselung, während die erstere die Komplexität verbirgt, die letztere jedoch die Daten einschließt, die sie einkapselt, indem sie den Zugriff darauf kontrolliert. Abstraktion bezieht sich auf das Konzept, nur die notwendigen Merkmale darzustellen, indem die irrelevanten Details ausgeblendet werden, um die Komplexität einer Anwendung zu reduzieren, wodurch die Effizienz erhöht wird. Encapsulation hingegen bezieht sich auf das Konzept, alle internen Mechanismen eines Programms zu verbergen, um die Informationen vor unerwünschtem Zugriff zu schützen. Es bindet die Daten und Informationen in einer einzigen Komponente, indem der Zugriff auf andere Komponenten eingeschränkt wird.