2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Die Kapselung ist eines der drei Grundmerkmale der objektorientierten Programmierung (OOP) (Kapselung, Vererbung, Polymorphismus). Es bezieht sich auf die Kombination von Daten (Eigenschaften) und Methoden (Funktionen) zur Verarbeitung dieser Daten in einer unabhängigen Einheit (Klasse), wobei die internen Details des Objekts so weit wie möglich verborgen werden und nur die Schnittstelle der Außenwelt zugänglich gemacht wird. Der Zweck besteht darin, die Daten des Objekts zu schützen, zu verhindern, dass externer Code direkt auf die internen Datenstrukturen des Objekts zugreift, Fehler zu reduzieren und die Komplexität zu vereinfachen.
Klasse verwenden : Legen Sie beim Definieren einer Klasse die Datenelemente (Eigenschaften) als privat oder geschützt fest und legen Sie die Methoden zum Betreiben dieser Daten als öffentlich fest. Auf diese Weise kann externer Code nicht direkt auf die privaten Mitglieder der Klasse zugreifen, sondern nur indirekt über öffentliche Methoden.
Zugriffsmodifikator:
public
: Zugänglich für jeden externen Code.protected
: Der Zugriff ist nur in der Klasse selbst und abgeleiteten Klassen (Unterklassen) möglich.private
: Der Zugriff ist nur innerhalb der Klasse selbst möglich, nicht in abgeleiteten Klassen.Konstruktor und Destruktor : Initialisieren Sie das Objekt über den Konstruktor und bereinigen Sie die vom Objekt belegten Ressourcen über den Destruktor. Sie sind auch Teil der Kapselung, da sie den Lebenszyklus des Objekts steuern.
Unten finden Sie ein einfaches C++-Wrapper-Beispiel, das a zeigtRectangle
Implementierung der (rechteckigen) Klasse.
- #include <iostream>
-
- class Rectangle {
- private:
- double width; // 矩形的宽
- double height; // 矩形的高
-
- public:
- // 构造函数
- Rectangle(double w, double h) : width(w), height(h) {}
-
- // 设置宽度
- void setWidth(double w) {
- width = w;
- }
-
- // 获取宽度
- double getWidth() const {
- return width;
- }
-
- // 设置高度
- void setHeight(double h) {
- height = h;
- }
-
- // 获取高度
- double getHeight() const {
- return height;
- }
-
- // 计算面积
- double getArea() const {
- return width * height;
- }
- };
-
- int main() {
- Rectangle rect(5.0, 10.0);
- std::cout << "Rectangle area: " << rect.getArea() << std::endl;
- rect.setWidth(7.0);
- std::cout << "New Rectangle area: " << rect.getArea() << std::endl;
- return 0;
- }
In diesem Beispiel,Rectangle
allgemeinwidth
Undheight
Eigenschaften werden privat gemacht und externer Code kann nicht direkt darauf zugreifen.Stattdessen verwenden wir öffentliche Methoden wiesetWidth
、getHeight
UndgetArea
), um auf diese privaten Eigenschaften zuzugreifen und sie zu ändern. Diese Methode implementiert die Datenkapselung und bietet eine klare Schnittstelle für die externe Verwendung.