《面向对象程序设计的基本思想》参考教案1.doc
PAGE1/NUMPAGES3
面向对象程序设计
将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
对象是构成软件系统的最基本单位,复杂对象由简单对象组成。
一个系统由若干对象组成,对象通过发送消息相互联系。
当设计一个复杂系统时,首先应确定系统由哪些对象组成、并设计这些对象。
封装——隐藏
继承——重用
抽象——多态
封装性(Encapsulation)隐藏了对象某一方法的具体执行步骤,而是通过消息传递机制传送消息给它。
例如,“电视机A”这对象类有“换台”的方法,这一方法定义了电视机具体该通过什么方法换台。但是,我们并不需要知道它到底如何换台。只需知道通过按遥控器按钮就可以实现让“电视机A”换台。
封装把对象的内部实现和外部行为分隔开来。
继承性(Inheritance)是指,在某种情况下,一个类会有“子类”。子类比原本的类(称为父类)要更加具体化。
例如,“人”这个类有他的子类“圣人”,那么,子类(圣人)会继承父类(人类)的属性(姓名、年龄)和行为(吃、喝、拉、撒),并且包含它们自己的属性(思想、尊称)和行为(著书立说、讲经说道)。
抽象(Abstraction)是简化复杂的现实问题的途径,可以在最恰当的继承级别解释问题。
例如,孔子在大多数时候都被当作“圣人”,总是调用“讲经说道”的方法,但如果想要让他做“人”做的事,你完全可以调用人的方法(如“吃饭”),那么你又可以视孔子为一个“人”。
多态性(Polymorphism)建立在抽象的基础上。
为什么要引进面向对象
面向过程的设计开发方法已不适应计算机进一步发展的需要。
面向对象思想更接近真实世界。
什么是面向过程程序设计?
过程:事情进行或事物发展所经过的程序。
面向过程程序设计就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程设计与面向对象设计的区别
面向过程设计是围绕功能进行的,所有数据都是公用,程序设计者必须考虑每一个细节,何时由A函数调用B函数,每个函数操作哪些数据等等
什么是面向对象程序设计?
面向对象是把构成问题事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
在语言中,类(class)是对象的模板,是用来定义一类对象的共性特征;
人类是张三、李四的抽象,具备所有人类的共性——有姓名、人种、性别等属性和吃喝拉撒的行为。
类与对象的关系就是抽象与具体的关系。
图纸与大楼、模子与月饼
类是对象的抽象、对象是类的实例(实现)
人类是张三、李四等具体人的抽象;
张三是人类的实现,他叫张三、黄种人、是男性,能吃喝拉撒;
面向对象分析(OOA)
系统分析员从宏观角度出发,概括系统应该做什么(而不是怎么做),设计类和对象。
面向对象设计(OOD)
根据需求模型进行具体设计。
面向对象编程(OOP)
使用语言实现具体设计。