Atitit object 和class的理解 目录 1.1. 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。 1 1.2. 那我们怎么把这些Object给创建起来

Atitit object 和class的理解

 

目录

1.1. 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。 1

1.2. 那我们怎么把这些Object给创建起来?并且让Object 和 Class关联?” 2

1.3. 要操作Object的数据, 到底操作的是哪一个Object?:“要有this!” 4

1.4. 要有继承 防止Class包含了类似的功能 4

1.5. 在概念层次进行编程。” 4

 

 

 

Object

 

    1. 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。

上帝说:“要有Class!把这些重复的方法代码从对象中剥离出来,放到一个公共的Class中! ”

 

 

    1. 那我们怎么把这些Object给创建起来?并且让Object 和 Class关联?”

上帝说:“可以用new 这个关键字:Stack object1 = new Stack();”

Stack类的函数定义只有一份,但是Stack类生成的Object有很多份。

    1. 要操作Object的数据, 到底操作的是哪一个Object?:“要有this!”

每次调用函数的时候,可以把要操作的Object作为一个隐藏的参数传递进去。例如void push(int data),真正在调用的时候是这样的:void push(Stack this, int data)。

有个叫Guido的说:“我能不能把this改成 self ? ”

上帝说:“随你喽!”

还有人说:“这不又回到我们原始的状态去了吗? void push(Stack *s,int data)”

上帝告诫说:“虽然本质相同,但是表达形式不同,之前你在语法层面必须传递一个Stack 对象到函数,现在在语法层面不用加了。我会在编译后的代码,或者运行时自动给你们加上。”

 

    1. 要有继承 防止Class包含了类似的功能

很多很多的Class,上帝发现有些Class包含了类似的功能,还是有重复代码。

上帝说:“要有继承!把那些类似的、重复代码放到父类当中去,这样子类就可以直接使用,不用重新再写一遍了

 

    1. 在概念层次进行编程。”

 

编程的关键是要抽象啊!你们得把系统需求抽象成高层的概念,然后在概念层次进行编程。”

这句话本身就很抽象。

 

分析问题应该站在概念的层次上,而不是站在实现的层次上。什么叫做概念的层次呢?简单的说就是分析对象该做什么,而不是分析对象怎么做。前者属于分析的阶段,后者属于设计甚至是实现的阶段

 

简单的说吧,在概念层次上进行分析就是设计出接口(或是基类),而不用关心具体的接口实现(实现推迟到子类再实现)

 

 

面向对象圣经.html

posted @ 2019-06-12 08:06  attilaxAti  阅读(24)  评论(0编辑  收藏  举报