文档介绍:认识空间-解空间
现实世界
认识空间 解空间
第1页/共26页
计算机解决客观世界中问题的本质
借助某种程序设计语言的规定,将客观世界中待处理的对象抽象为程序中的对象(称为解空间对象)
然后利用程序的功能对解空间对象进行处理,并将处理结果映射为问题的解。
现实世界中的对象→解空间对象
第2页/共26页
机器语言
汇编语言
面向对象语言
高级语言
程序设计语言
第3页/共26页
解空间对象
解空间对象是什么模型,要取决于所使用的程序设计语言:
汇编语言提供的对象 - 存储单元。
面向过程的高级语言所提供的对象 - 各种预定义类型的变量、数组、记录和文件等。
面向对象语言提供的对象 - 对象
一旦提供了某种解空间对象,也就隐含规定了允许对该类对象施加的操作。
第4页/共26页
面向过程语言
面向过程的语言语言中所提供的解空间对象实质上仅仅是描述实际对象的属性数据,而缺少对象的行为。
只有从外部对对象施加操作,才能模拟对象的行为。
面向过程的程序把数据和处理
人为地分开,会增加软件开发
的难度,也不利于为现实世界
中的对象建模。
数据区
程序区
第5页/共26页
面向对象观点
人们在观察和分析周围的事物时,经常是用一种面向对象的观点看待问题。
我们周围的世界是由各式各样的对象组成:
例如学校中,学生、教师、课程、班级、教室、计算机、电视机、空调等都是对象。
对象可以是人,可以是物,可以是具体的事物,也可以是抽象的概念。
我们周围所发生的一切,无非是对象相互作用的结果。
第6页/共26页
客观世界中对象的属性
客观世界中对象:
状态(数据) -静态属性
行为(功能)— 动态属性
对象既含数据又含功能,因此具有自身处理数据的能力 - 能动的主体。
对象是一种看问题的观点,是对现实世界各种元素的一种抽象。
对象被认为是迄今为止最接近真实事物的数据抽象。
第7页/共26页
面向对象语言
面向对象语言中的解空间对象比较好地模拟了现实世界中的对象。
将对象定义为数据及可以施加在这些数据上的操作所构成的统一体。
该对象与传统的数据有本质的区别,
传统数据-被动地等待外界对它的操作。
对象-进行处理的主体。
可以通过向对象发“消息”来请求对象主动地执行它的某些操作,处理它的内部数据,完成对象所具有的某项功能。
第8页/共26页
对象
int x ; 变量x
Integer x ; 对象x
int compareTo(Integer anotherInteger)
double doubleValue()
float floatValue()
int intValue()
long longValue()
short shortValue()
String toString()
()
对
象
x
所
具
有
的
功
能
第9页/共26页
面向过程-面向机器
在面向过程的程序设计中,核心是:
数据结构是利用计算机的离散逻辑来量化表达需要处理的数据对象;
而算法则是研究如何快捷、高效地组织解决问题的具体过程。
面向过程本质上是面向机器,而不是面向问题。
算法+数据结构
第10页/共26页