“为什么面向对象的编程会在软件开发领域造成如此震憾的影响?”
优点:
对管理人员,它实现了更快和更廉价的开发与维护过程。
对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。
对程序员,对象模型显得如此高雅和浅显。
缺点:
那就是掌握它需付出的代价。(通俗说就是要花费大量的时间)
抽象
所有编程语言的最终目的都是提供一种“抽象”方法。(就是把机械语言抽象成人类可以抽象成理解的)
1.所有东西都是对象
可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。
2.程序是一大堆对象的组合;
通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那28个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从属于目标对象的一个
子例程或函数。
3. 每个对象都有自己的存储空间,可容纳其他对象。
或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。
4.每个对象都是一种类型
根据语法,每个对象都是某个“类”的一个“实例”。其中,“类”(Class)是“类型”(Type)的同义词。一个类最重要的特征就是“能将什么消息发给它?”。
5.同一类所有对象都接收相同的消息
这实际是别有含义的一种说法,大家不久便能理解。由于类型为“圆”(Circle)的一个对象也属于类型为“形状”(Shape)的一个对象,所以一个圆完全能接收形状消
息。这意味着可让程序代码统一指挥“形状”,令其自动控制所有符合“形状”描述的对象,其中自然包括
“圆”。这一特性称为对象的“可替换性”,是OOP 最重要的概念之一。