451 Stimmen

Unterschied zwischen Abstraktion und Verkapselung?

Was ist der genaue Unterschied zwischen Kapselung und Abstraktion?

8voto

Paweł Hajdan Punkte 17384

Ein weiteres Beispiel:

Angenommen, ich habe eine unveränderliche Rectangle-Klasse wie diese erstellt:

class Rectangle {
 public:
  Rectangle(int width, int height) : width_(width), height_(height) {}
  int width() const { return width_; }
  int height() const { return height_; }

 private:
  int width_;
  int height_;
}

Jetzt ist es offensichtlich, dass ich gekapselt Breite und Höhe (der Zugang ist irgendwie eingeschränkt), aber ich habe nicht abstrahiert irgendetwas (okay, vielleicht habe ich ignoriert, wo sich das Rechteck im Koordinatenraum befindet, aber das ist ein Fehler des Beispiels).

Eine gute Abstraktion bedeutet in der Regel auch eine gute Kapselung.

Ein Beispiel für eine gute Abstraktion ist eine generische Datenbankverbindungsklasse. Ihre öffentliche Schnittstelle ist datenbankunabhängig und sehr einfach, erlaubt mir aber, mit der Verbindung zu tun, was ich will. Und sehen Sie? Es gibt auch eine Kapselung, denn die Klasse muss alle Low-Level-Handles und -Aufrufe in sich tragen.

8voto

Devrath Punkte 39521

Abstraction y Encapsulation anhand eines einzigen verallgemeinerten Beispiels

------------------------------------------------------------------------------------------------------------------------------------

Wir alle benutzen Taschenrechner für die Berechnung komplexer Probleme!

image

7voto

C. Punitha Punkte 71

Ein Mechanismus, der die Daten eines bestimmten Objekts sicher vor absichtlichem oder versehentlichem Missbrauch durch externe Funktionen schützt, wird als " Datenkapselung"

Die Darstellung wesentlicher Merkmale ohne Einbeziehung von Hintergrunddetails oder Erklärungen ist bekannt als Abstraktion

6voto

Sajidur Rahman Punkte 2274

Je mehr ich las, desto verwirrter wurde ich. Also, hier ist einfach das, was ich verstanden habe:

Verkapselung:

Wir sehen eine Uhr in der Regel von außen, und ihre Bestandteile sind im Inneren des Gehäuses eingekapselt. Wir haben eine Art Kontrolle für verschiedene Operationen. Diese Art, Details zu verbergen und die Steuerung (z. B. das Einstellen der Uhrzeit) offenzulegen, ist die Kapselung.

Abstraktion:

Bis jetzt haben wir über eine Uhr gesprochen. Aber wir haben nicht spezifiziert, was für eine Art von Uhr. Sie könnte digital oder analog sein, für den Zeiger oder die Wand. Es gibt viele Möglichkeiten. Was wir wissen, ist, dass es sich um eine Uhr handelt, die die Zeit anzeigt, und das ist das Einzige, was uns interessiert: die Zeit. Diese Art und Weise, Details zu verbergen und ein allgemeines Merkmal oder einen Anwendungsfall darzustellen, ist Abstraktion.

5voto

venugopal Punkte 407

Abstraktion--- Verstecken der Implementierung--beim Entwurf---Verwenden von Schnittstellen/Abstract-Kalendern

Kapselung - Verstecken von Daten - Bei der Entwicklung - Verwendung von Zugriffsmodifikatoren (öffentlich/privat)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X