Osheep

时光不回头,当下最重要。

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

每一天,都会有无数初入编程大门的新手们百度着“什么是面向对象编程?”

而大多数情况下,他们都会看到一堆诸如“封装、继承、多态。。。”之类的艰深晦涩之词。然后是一段类似:

class a {
    a();
    ~a();

private:
    int b;

public:
    void c();
};

然后告诉读者们,这就是面向对象。
一脸懵逼的新手们,大部分是在这个坎上放弃了学习编程,觉得这太抽象了,编程太难了。
还有一部分继续学习的,却始终没有理解面向对象的含义,觉得自己会写代码就行了。
造成这种现象的原因,不是那些博客写的不好,也不是面向对象的定义不清楚,而是因为面向对象本身就是一门浓缩的哲学。要想理解哲学可没有那么容易。

那么究竟啥是面向对象呢?我们通过一个小故事来理解:

上帝创世

那是上帝创世的第六天,上帝起床觉得没事做,就随手捡起一把泥,按照自己的样子捏了起来(这不是女娲造人吗)。
于是他捏了头、身体、四肢,并把他们组装在一起。
一开始,上帝是先捏一堆四肢,再捏一堆头,再捏一堆身体,最后再看情况组装的。但粗心的上帝发现这样捏出来的人,很容易就出差错。比如:这个身体明明是为张三设计的,却装到了李四身上;或者不小心拿大象的腿给人装上了。
于是上帝决定,制定一个标准,只有符合这个标准的才叫人。也就是一个类(Class)——“人类”之所以叫“人类”也是这个原因。依据这个标准,上帝制造出了一个人,称为对象(Object)

每个人都有自己的属性——成员变量,和动作——成员方法。于是每个人看起来是这样的:

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

private:
    int height;
    int weight;

public:
    void eat();
};

其中height,weight是两个成员变量,eat() 是成员方法
上帝创造一个人时看起来是这样的:

Human zhangsan();

于是上帝愉快的按照这个标准制造着人类,再也没有出过错。每个人都一目了然,再也不会和别的生物弄混了。

就此,面向对象诞生了。

面向对象所创建的每个对象都是独立的,程序以对象为基本单位进行设计,让程序看起来更加友好,更加清晰,程序的功能也获得了飞升。

点赞