“我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整理口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来……除非赞成这个协定中规定的有关言语信息的组织和分类,否则我们根本无法交谈。”
——Benjamin Lee Whort(1897~1941)
1.1抽象过程
所有编程语言都提供抽象机制,汇编语言是对底层机器轻微抽象。命令式语言:如FORTRAN、C、BASIC等,都是对汇编的抽象。但是在解决问题时要基于计算机结构,而不是基于解决的问题的结构来考虑。
只针对待解决问题建模:
1、世界的某些特定视图:如LISP,所有问题最终都是列表;APL,所有问题都是算法形式。这些方式只能解决特定类型的问题,并不能解决所有问题。
2、面向对象OOP(Object Oriented Programming):表示问题空间中的元素,不会受限于任何特定类型的问题。
纯粹的面向对象设计基本特性:
1、万物皆为对象。
2、程序是对象的集合,它们通过发送消息来告知彼此所要做的。
3、每个对象都有自己由其他对象所构成的存储。
4、每个对象都拥有其类型
5、某一特定类型的所有对象都可以接收同样的消息。
1.2每一个对象都有一个接口
1、类,问题空间的元素,解决空间的对象。
2、接口:确定对某一特定对象