5.2 面向对象程序设计的基本概念
一、 教学目标
1、 知识与技能
(1)认识面向对象程序设计中对象、类的概念及其特征。
(2)认识面向对象程序设计中类、对象和实例的关系。
2、 过程与方法
(1)能够举例说明现实世界与程序世界的对象及其特征。
(2)能够举例说明现实世界与程序世界的类及其特征。。
(3)能够画图表示类、对象和实例三者的关系。
3、 情感态度和价值观
(1)能关注面向对象程序设计的基本概念。
(2)能产生对对象、类等的认识的愿望。
(3)能认识到掌握对象、类的概念是学习面向对象程序设计的前提。
二、 重点难点
教学重点:
(1)对象及其特征。
(2)类及其特征。。
教学难点:
(1)类及其特征。
(2)类的继承。
(3)类、对象和实例的关系。
三、 教学环境
1、 教材处理
教材选自广东教育出版社的信息技术(选修一)《算法与程序设计》第五章第二节,本节以理论为主。面向对象程序设计涉及到一些基本的概念,认识和理解类、对象的基本概念,以及类、对象和实例之间的关系是掌握面向对象程序设计的基础,是进一步学习面向对象功能实现的的前提。内容编排尽量贯彻原教材的意图展开。
教学方法采用讲解、学生自主学习和合作学习相结合的学习方法。
2、 预备知识
学生已认识面向对象程序设计的基本思想,初步了解了类、对象等概念,通过比较得知两种程序设计方法的优劣所在。有了这些基础,学习者明显产生了想进一步学习面向对象设计知识的欲望。
3、 硬件要求
本节内容是纯理论,可在普通教室上,也可选在多媒体电脑教室中完成,以供学生实践。
4、所需课时:1课时
四、 教学过程
导入:1、简要介绍本节课的教学目标:紧密联系现实生活中的实例理解面向对象程序设计中的主要概念如对象、类及其关系,知道这些概念在面向对象思想中的重要性。
2、联系实际生活提问导入:现实生活中我们经常说到“类”这个概念,如人类、花类、鸟类等等。 “人类”又可分为黑人、黄种人、白人等小类,这些小类可以具体到某个人如张三、李四、王五等。前面我们提到计算机软件的开发过程就是人们使用计算机语言将现实世界映射到计算机世界的过程。那么这些概念在面向对象程序设计中是采用怎样的机制来实现映射的呢?这节课我们来作充分的探讨。
(一)对象
1、 什么是对象
在客观世界中,“对象”原意是指“物体”的意思,它是现实世界事物的抽象表示。如一个人、一只动物、一台计算机、一部手机、甚至是一场比赛、一次演唱会等等都是对象。对象之中,还可以包含其它对象。如一辆汽车包含了发动机、车轮、方向盘、离合器和刹车装置等多个零部件,这些零部件也都是对象。
2、 对象的特征
对象尽管如此复杂,但它们一般都有某些相似性,称为对象的特征。归纳起来有以下几点:
(1) 都具有一个标识自己以区别其他对象的名字。
(2) 都具有自身的属性及其属性值。如计算机的CPU主频、内存大小、硬盘
容量等显示计算机的数据特征。
(3) 都具有身的行为(操作)。行为用来描述该对象的功能、操作和可完成的
任务。对象执行的操作是行为的表现形式。例如,计算机具有运行程序、
处理数据、存储数据、控制打印等行为。
又比如,一个人是一个对象,他(她)有自己的名字、身高、体重、学历等特征;他(她)有一系列技能,如懂维修电器、会程序设计,他(她)通过这些技能与社会其他人进行交往。
3、 对象的描述
例:有一个人名叫胡东、身高1.75m,体重75kg,专科毕业,懂电器维修,会程序设计。 我们可以这样描述这个对象的特征:
对 象 名:胡东
对象的属性:
学历:专科
身高:1.75m
体重:75kg
对象的行为:
回答身高
回答体重
维修电器
程序设计
4、 面向对象程序设计中的“对象”
面向对象程序设计中的对象是客观世界中对象的模型化。根据以上对对象特征的描述可知,对象是有着特殊数据(属性)与操作(行为)的实体,对象的操作(行为)称为方法。程序中的对象是模型化了的客观世界的对象,它是代码和数据的封装体,用数据表示属性,用代码(过程或函数)表示方法。一个程序对象的属性用变量来表示;而对象的方法用对象中的代码来实现。
例如:我们在前面学习过的窗体、文本框和命令按钮都是对象。每个对象都有
自己的一些属性和方法。如窗体FORM1有Name、BackColor等属性,还有Print、Show和Move等等方法。
因此,程序中的对象是数据和操作(方法)的一个封装体,是程序运行时的基本实体。可用公式表示成:对象=数据+方法(作用于这些数据上的操作)。
5、 图解对象
客观世界
程序世界
马上行动:结合你的生活和学习的实际,试举例说明现实生活中的对象和程序设计中的对象,并说明各自的特征。
(二) 类
类也是我们在现实生活中常用的词语,诸如人类、鸟类和花类等都表达了一个类的概念。在客观世界中对象是大量存在的。为了便于理解和管理,我们通常采用归类法从一个个具体对象中抽取共同特征,以形成一般概念。
1、什么是“类”
“类”是一组具有相同属性和行为的客观对象的抽象。它将这一组对象的公共特征集中,说明该组对象的能力和性质或共同特征。例如,人类这个词语就涵盖了所有人类的共同之处,是人的所有共同之处的抽象概括。
2、类与对象的关系
类是对象的模型。对象是类的具体化,是类的实例。
例如学生是一个类,郑达是一个学生,则郑达是学生类中的一个具体的对象,即实例。同一个类中可具有许许多多的对象,对象(实例)之间除了所含的行为(方法)相同,属性的定义相同,各对象的属性值可以不同。
3、面向对象程序设计中的“类”
在面向对象程序中,类(Class)是具有相同操作功能(方法)和相同数据格式(属性)的对象的集合,即一组对象的抽象。它规定了该组对象的共同特征。只是这组对象不是现实世界中的具体事物,而是我们在程序中使用的一种程序单元。
类形成了一个具有特定功能的模块和一种代码共享的手段。它为程序员提供了一种可以方便建立所需要的任何类型和方便使用这些类型的工具。
类至少包含了以下两个方面的描述:
(1) 本类所有实例的属性定义或结构的定义
(2) 本类所有实例的操作(或行为)的定义
例:上节活动二的类模块中定义了Student类,类中设置的属性是姓名和三门课成绩,方法是计算总分和判断证书类型等。比如这个类中有对象张三、李四、王五等,可用图表示如下:
在第三章“可视化编程”中创建的各种控件、窗体都是由VB内建的控件类、窗体类来创建的对象,用户可直接通过这些类来创建相应的对象,这是面向对象程序设计的优点。
在一个系统中,每一个对象均属于某个类,类是对象的属性和操作的定义模板,而实例是某个具体的对象。
在程序中引入了类后,给程序的开发和维护带来了极大的便利,同时也大大增加了代码的可重用性。软件系统是由模块组成的,可重用性是指在一个软件系统用到的模块可以重复地被其他项目所使用,这对模块的独立性提出了很高的要求,而类恰恰做到了这点。定义好的类还可供编写其他相关应用程序时调用。
类的继承性是软件重用的重要特性。在活动二中的Student类通过继承可以创建许多许多的对象,这是面向对象程序设计中的从类到对象的简单继承。VB6以前的版本不支持继承,它的后续版本VB.NET给继承机制提供了有力支持。
马上行动:(1)列举现实世界中类的例子,并说明其共同特征。
(2)创建一个“标准EXE”工程,该工程包含一个窗体Form1,再添加一个Command1按钮,双击该按钮,输入如下代码:
Private Sub Command1_click()
‘定义对象变量frmCreate
Dim frmCreate As New Form1
‘Form1是一个类,New是创建类实例的关键字
frmCreate.Show
End Sub
运行程序,单击按钮,这时你看到了什么?反复单击按钮,你又看到什么?
(三)类、对象和实例的关系
我们把具有相同特性的物质归为一类,类是对多个对象的抽象,而对象是类的实例。类和对象的关系是抽象和具体的关系。类表达的是一个抽象的概念,它描述了该类对象的共同特征;而对象是具体事物,以类为模板来生成,它具有自己的属性。
同一个类的不同对象之间既有共性又有个性。对象的个性是指每个对象都有不同的对象名和属性值,它可以通过对象名对对象进行引用。
由类创建对象的过程称为实例化。每个对象是类的一个新实例。
下图显示了类和对象的关系。学生类是对什么是学生的一个定义,而张三、李四、王五是对象,是学生类的实例。
类定义中的属性指定了使一个对象区别于其他对象的值。比如在活动二中的类Student的定义中包含学生的姓名、三门课程的分数等属性,如下图所示,每个对象的这些属性都拥有自己的值。所有的由类定义建立的对象都共享类的方法。但是,它们都拥有在类方法中定义的所有变量的副本。
交流:谈谈你对类、对象和实例的认识。
五、课外拓展
课外练习:结合本节内容,通过上网搜索、去图书馆查阅相关资料、或与其他同学、朋友一起交流进一步了解“面向对象技术”的思想和特点。
参考资料:
算法与程序设计 主编 应吉康 上海科技教育出版社
算法与程序设计 主编 张义兵 教育科学出版社
Visual Basic 6.0程序设计教程 宁正元主编 清华大学出版社 北京交通大学出版社
Visual Basic 6.0程序设计 刘新民 蔡琼 白康生 编著 清华大学出版社 OOD 启思录 美 Arthur J.Riel著 鲍志云 译