私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
カプセル化は、オブジェクト指向プログラミング (OOP) の 3 つの基本機能 (カプセル化、継承、ポリモーフィズム) の 1 つです。データ(プロパティ)とそれを操作するためのメソッド(関数)を組み合わせて独立した単位(クラス)とし、オブジェクトの内部詳細を可能な限り隠し、インターフェースのみを外界に公開することを指します。この目的は、オブジェクトのデータを保護し、外部コードがオブジェクトの内部データ構造に直接アクセスするのを防ぎ、エラーを減らし、複雑さを簡素化することです。
クラスの使用 : クラスを定義する際に、データ メンバー (プロパティ) を private または protected に設定し、これらのデータを操作するためのメソッドを public に設定します。このように、外部コードはクラスのプライベート メンバーに直接アクセスできませんが、パブリック メソッドを通じて間接的にのみアクセスできます。
アクセス修飾子:
public
: 任意の外部コードからアクセス可能。protected
: クラス自体および派生クラス (サブクラス) 内でのみアクセスできます。private
: 派生クラスではなく、クラス自体内でのみアクセスできます。コンストラクターとデストラクター : コンストラクターを通じてオブジェクトを初期化し、デストラクターを通じてオブジェクトによって占有されているリソースをクリーンアップします。これらはオブジェクトのライフサイクルを制御するため、カプセル化の一部でもあります。
以下は、単純な C++ ラッパーの例です。Rectangle
(長方形) クラスの実装。
- #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;
- }
この例では、Rectangle
一般的なwidth
そしてheight
プロパティはプライベートになり、外部コードはプロパティに直接アクセスできなくなります。代わりに、次のようなパブリック メソッドを使用します。setWidth
、getHeight
そしてgetArea
) これらのプライベート プロパティにアクセスして変更します。このメソッドはデータのカプセル化を実装し、外部使用のための明確なインターフェイスを提供します。