面向对象——浓缩的哲学2

人类??

上帝赋予了每个人独立的思想,这使得他们有极强的自我意识。他们本身的属性,一般只能通过自己的成员方法来进行获取或者改变。

面向对象——浓缩的哲学2_第1张图片
听说有人问我体重

例如,我们都知道之间问女性的年龄是及其不礼貌而且危险的一件事情。为什么呢?让我们来看看一个女性的构造:

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,那问男性体重不也会变成问女性那样的情状?

不用急,答案在下一章~

你可能感兴趣的:(面向对象——浓缩的哲学2)