面向對象——濃縮的哲學2

人類??

上帝賦予了每個人獨立的思想,這使得他們有極強的自我意識。他們本身的屬性,一般只能通過自己的成員方法來進行獲取或者改變。

聽說有人問我體重

例如,我們都知道之間問女性的年齡是及其不禮貌而且危險的一件事情。為什么呢?讓我們來看看一個女性的構造:

class Human {
    Human();
    ~Human();

private:
    int height;
    int weight;
    bool isHappy;

public:
    void eat ();
    void showWeight () {
        if (isHappy) {
            cout << "My weight is " << this.weight;
            // 這里的this就是指當前的這個對象
        }
        else {
            cout << "You are a good man";
        }
};

這當然還是上一章中創造出的人類。我們注意到weight這個成員變量是private的,也就是私有的。私有的東西當然不能讓別人隨便看到或修改,如果有人可以隨便跑過來修改你的身高和體重這會是一件非??膳碌氖虑椤K詐rivate的這些屬性是受到保護的,有沒有被改變或者查詢一目了然:

Human scarlett();
scarlett.showWeight();

但是通過這樣直接訪問是不可以的:

cout << scarlett.weight;

這種對類的屬性進行隱藏和保護,并通過設置接口(也就是成員方法)來和外部進行交互(交流)的方法,就稱為封裝(Encapsulation)

當然,如果你是一個了解面向對象,或者熟知C++的讀者,看到這里心里已經充滿疑問了。你上面說這是女性的構造,難道男性不是Human?如果男性是Human,那問男性體重不也會變成問女性那樣的情狀?

不用急,答案在下一章~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1 面向對象No6 面向對象 OO Object Oriented 編程時以對象為單元,封裝數據和邏輯,以此提...
    征程_Journey閱讀 1,173評論 0 2
  • C++文件 例:從文件income. in中讀入收入直到文件結束,并將收入和稅金輸出到文件tax. out。 檢查...
    SeanC52111閱讀 2,833評論 0 3
  • 四月最后的一周,回顧這個月,花開花謝,暖陽變烈,一切都過渡的那么自然!每日晨跑,與自己談心觀景,感受在湖邊的微風...
    o0嘴角微翹0o閱讀 251評論 0 2
  • (作者:宋將) 有時候,就想一個人開始一段簡單的旅行,背著個小小的旅行包,帶上一副酷...
    微微一笑很傾城sj閱讀 325評論 0 3