【摘要】 (这是大体框架,以后部分知识细写)
1 抽象过程
所有编程语言都提供抽象机制。可以认为,人们能解决的问题的复杂性直接取决于抽象的类型和质量。
类型:指的是所抽象的是什么。
汇编语言是对底层机器语言的轻微抽象;
c、BASIC等命令式语言是对汇编语言的抽象;
这些语言虽然有很大的改进,但是他们做的主要抽象仍要求在解决问题时基于计算机的结构而不是问题的结构…
(这是大体框架,以后部分知识细写)
1 抽象过程
所有编程语言都提供抽象机制。可以认为,人们能解决的问题的复杂性直接取决于抽象的类型和质量。
类型:指的是所抽象的是什么。
汇编语言是对底层机器语言的轻微抽象;
c、BASIC等命令式语言是对汇编语言的抽象;
这些语言虽然有很大的改进,但是他们做的主要抽象仍要求在解决问题时基于计算机的结构而不是问题的结构。这就要求程序员必须建立起机器模型(计算机)和实际问题的模型(一项业务)之间的关联。这是非常费力的,使得程序难编写,维护代价高昂。
另一种建模方式是针对特定问题进行建模,对于要解决的特定类型的问题来说,他们是非常不错的,但是一旦超出了特定领域,就显得力不从心了。
面向对象的方式通过向程序员提供表示问题空间中的元素的工具而更进一步。我们把问题空间(计算机)中的元素和在解空间中的表示成为“对象”。
Alan Kay总结了第一个成功的面向对象语言的五个特性:
1)万物皆对象(理论上讲,可以抽取问题的任何概念化构件,比如猫,建筑、服务)
2)程序是对象的集合,他们通过发送消息来告知彼此要做的。
3)每个对象都有自己的由其他对象所构成的存储(换句话说,可以通过创建包含现有对象的包来创建新类型对象)
4)每个对象都拥有自己的类型(每个对象都是某个类的实例,例如旺财是狗的实例)
5)某一特定类型的所有对象都可以接收同样的信息
简洁来说,对象具有状态、行为和标识。
2 类和对象
类:类是一个模板,它描述一类对象的行为和状态。(比如猫类狗类动物类)
对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。
对比现实对象和软件对象,它们之间十分相似。软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。
每种编程语言都有自己的操作内存中元素的对象,在java中,万物都是对象。注意,我们操作的是对象的引用:可以想象成电视机和遥控器,我们操作的是遥控器。
String s;
© 版权声明文章版权归作者所有,未经允许请勿转载。THE END