面向对象——浓缩的哲学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的,也就是私有的。私有的东西当然不能让别人随便看到或修改,如果有人可以随便跑过来修改你的身高和体重这会是一件非常可怕的事情。所以private的这些属性是受到保护的,有没有被改变或者查询一目了然:

Human scarlett();
scarlett.showWeight();

但是通过这样直接访问是不可以的:

cout << scarlett.weight;

这种对类的属性进行隐藏和保护,并通过设置接口(也就是成员方法)来和外部进行交互(交流)的方法,就称为封装(Encapsulation)

当然,如果你是一个了解面向对象,或者熟知C++的读者,看到这里心里已经充满疑问了。你上面说这是女性的构造,难道男性不是Human?如果男性是Human,那问男性体重不也会变成问女性那样的情状?

不用急,答案在下一章~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 4,900评论 0 2
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 7,998评论 0 3
  • 四月最后的一周,回顾这个月,花开花谢,暖阳变烈,一切都过渡的那么自然!每日晨跑,与自己谈心观景,感受在湖边的微风...
    o0嘴角微翘0o阅读 1,751评论 0 2
  • (作者:宋将) 有时候,就想一个人开始一段简单的旅行,背着个小小的旅行包,带上一副酷...
    微微一笑很倾城sj阅读 2,669评论 0 3

友情链接更多精彩内容