Unterschied zwischen Abstraktion und Verkapselung

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.

Was ist Abstraktion??

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.

Was ist Kapselung??

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.

Unterschied zwischen Abstraktion und Verkapselung

Beide sind grundlegende Konzepte, die sich auf OOP beziehen, und sie sind technisch untrennbar, sie unterscheiden sich jedoch in vielen Aspekten.

  1. Unterschiede in der „Definition“ von Abstraktion und Verkapselung - Die Abstraktion ist ein grundlegendes OOP-Konzept, das alle wesentlichen Aspekte eines Objekts hervorhebt, indem die irrelevanten Details verborgen werden, um die Effizienz zu steigern und die Komplexität zu beseitigen. Einkapselung dagegen ist ein Mechanismus zum Verhindern von Daten, der die Daten und Informationen in eine Kapsel einschließt, um den Zugriff von außerhalb der Welt zu beschränken.
  2. Unterschiede in der "Funktionalität" der Abstraktion und Einkapselung- Abstraktion ist ein Mechanismus zum Ausblenden von Daten, der nur die wesentlichen Merkmale hervorhebt, um komplexe Programme zu vereinfachen, während die Einkapselung dagegen eine Methode zum Binden von Daten und Codes in eine einzige Entität darstellt. Die Idee ist, die Implementierungsdetails vor dem Zugriff von außen abzuschirmen.
  3. Unterschiede bei der „Implementierung“ von Abstraktion und Verkapselung - Die Abstraktion wird mit abstrakten Klassen und Schnittstellen implementiert, während die Kapselung mit Zugriffsmodifizierern implementiert wird. Es werden fünf Arten von Modifizierern verwendet, um Daten einzukapseln: Privat, Öffentlich, Intern, Geschützt und Geschützt Intern.
  4. Unterschiede im „Konzept“ der Abstraktion und Einkapselung- Die Idee hinter der Abstraktion ist, sich auf das zu konzentrieren, anstatt auf das Wie. Die Kapselung verbirgt die internen Mechanismen, wie. Wenn Sie zum Beispiel ein Auto fahren, wissen Sie genau, was das Bremspedal bewirkt, aber Sie kennen möglicherweise nicht den gesamten Mechanismus dahinter, da die Daten gekapselt sind.
  5. Unterschiede im „Beispiel“ von Abstraktion und Verkapselung - Nehmen wir als Beispiel ein Smartphone. Sie wissen, was es tut, aber Sie wissen möglicherweise nicht, wie es funktioniert. Sie kümmern sich nur um den Bildschirm und die Tasten der Tastatur, anstatt sich um die inneren Schaltkreise zu kümmern. Smartphone ist hier eine Zusammenfassung, in der die Details der inneren Implementierung gekapselt sind.

Abstraktion vs. Encapsulation mit der Vergleichstabelle

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.

Zusammenfassung

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.