鍍金池/ 教程/ C++/ D語言封裝
類的訪問修飾符
D語言運算符
D語言邏輯運算符
類指針
D語言元組
D語言指針
D語言模塊
D語言sizeof運算符
D語言混合類型
D語言封裝
D語言條件編譯
類的靜態(tài)成員
D語言do...while循環(huán)
D語言結構體
重載
D語言字符串-String
D語言決策語句
D語言接口
D語言for循環(huán)
D語言switch語句
D語言關聯(lián)數組
D語言范圍
D語言枚舉Enums
契約式編程
D語言并發(fā)
D語言開發(fā)環(huán)境設置
D語言別名
D語言常值
D語言常量
D語言函數
D語言if嵌套語句
D語言循環(huán)
D語言概述,D語言是什么?
D語言運算符優(yōu)先級
D語言continue語句
D語言異常處理
D語言break語句
D語言if...else語句
D語言類和對象
類繼承
D語言字符
D語言教程
D語言關系運算符
比較操作符重載
構造函數和析構函數
D語言抽象類
D語言if語句
D語言賦值運算符
D中算術運算符
D語言類成員函數
D語言位運算符
D語言變量
D語言數據類型
D語言文件I/O
D語言數組
一元運算符重載
D語言嵌套switch語句
D語言基本語法
二元運算符重載
this指針
D語言聯(lián)合體
D語言模板
D語言嵌套循環(huán)
D語言while循環(huán)

D語言封裝

所有的D程序有以下兩個基本要素:

  • 程序語句(代碼): 這是一個程序,它執(zhí)行動作被稱為函數的一部分。

  • 程序數據:該數據是受程式功能的程序的信息。

封裝是操作數據的數據和功能結合在一起的面向對象編程的概念,并保持既安全不受外界干擾和誤用。數據封裝導致數據隱藏重要的OOP概念。

數據封裝是捆綁的數據的機制,以及使用它們和數據抽象的功能是僅暴露的接口和隱藏來自用戶的執(zhí)行細節(jié)的機制。

D支持封裝和數據通過創(chuàng)建用戶定義的類型,稱為類隱藏的屬性。我們已經研究了一類可以包含私有的,受保護的和公共的成員。默認情況下,在一個類中定義的所有項目都是私有的。例如:

class Box
{
   public:
      double getVolume()
      {
         return length * breadth * height;
      }
   private:
      double length;      // Length of a box
      double breadth;     // Breadth of a box
      double height;      // Height of a box
};

變量長度,寬度和高度都是私有的。這意味著,他們只能通過Box類的其他成員進行訪問,而不是由你的程序的任何其他部分。這是封裝的實現方式之一。

為了使一個類公開(即,訪問程序的其他部分)的部分,則必須在public關鍵字后聲明。所有定義的變量或函數是由程序中的所有其他函數訪問。

使一個類的另一個好友暴露的實施細則,并降低了封裝。理想的是保持盡可能多的各類別隱藏所有其他類盡可能的詳細信息。

數據封裝示例:

實現一個類的公共和私有成員的任何D程序是數據封裝和數據抽象的例子。請看下面的例子:

import std.stdio;

class Adder{
   public:
      // constructor
      this(int i = 0)
      {
        total = i;
      }
      // interface to outside world
      void addNum(int number)
      {
          total += number;
      }
      // interface to outside world
      int getTotal()
      {
          return total;
      };
   private:
      // hidden data from outside world
      int total;
}
void main( )
{
   Adder a = new Adder();

   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   writeln("Total ",a.getTotal());
}

當上面的代碼被編譯并執(zhí)行,它會產生以下結果:

Total 60

上面的類添加數相加,并返回總和。公共成員addNum和getTotal是外面的世界的接口,一個用戶需要知道他們使用的類。私有成員total 是從外界隱藏的,但需要為類正常運作。

設計策略:

我們大多數人都通過痛苦經歷教訓,默認情況下類成員是私有的,除非我們真的要揭露他們。這只是良好的封裝。

這種智慧是最常應用于數據成員,但它同樣適用于所有成員,包括虛函數。


上一篇:重載下一篇:D語言常值