抽象的进步
所有编程语言的最终目的都是提供一种“抽象”方法。
一种较有争议的说法是:解决问题的复杂程度直接取决于抽象的种类及质量。
“种类“ 就是指准备对什么进行”抽象“
1. 汇编语言是对基础机器的少量抽象
2. ”命令式“语言(Fortran Basic C)是对汇编语言的一种抽象
a. 与汇编语言相比,这些语言已经有了长足的进步
b. 但是它们的抽象原理依然要求我们着重考虑计算机的机构,而非考虑问题本身的结构
”纯粹“的面向对象程序设计方法:
1. 所有的东西都是对象 - 可将对象想象成一种新型变量:保存数据,要求它对自身进行操作
2. 程序是一大堆对象的组合 - 通过消息传递,各对象知道自己该做些什么,可将消息想象成为一个调用请求
3. 每个对象都有自己的存储空间,可以容纳其他对象 - 通过封装现有对象,可以制作出新型对象
4. 每个对象都有一种类型 - 每个对象都是某个”类“的一个”实例“
5. 同一类所有对象都能接受相同的消息 - ”可替换性“
控制对成员的访问:
1. 防止程序员接触他们不该接触的东西 - 通常是内部数据类型的设计思想
2. 允许库设计人员修改内部结构,不用担心它会对客户程序员造成什么影响
一个单根结构,加上所有对象都在内存堆中创建,可以极大简化参数的传递;
利用单根结构,我们可以更方便地实现一个垃圾收集器:
- 与此有关的必要支持科安装于基础类中
- 垃圾收集器可将适当的消息发给系统内的任何对象