|
(作者:占太鹏
修改时间:2006年7月24日)
一、
教学目标
1、知识与技能
(1)认识创建类的的方法
(2)认识对象的声明和实例化的方法。
(3)了解利用VB进行面向对象程序设计的一般过程。
2、过程与方法
(1)在VB中创建并使用类。
(2)掌握利用VB进行面向对象程序设计的一般过程。
3、情感态度和价值观
(1)关注面向对象程序设计的功能实现。
(2)产生对面向对象的功能实现学习的愿望。
(3)从思想上把握面向对象程序设计的一般过程。
二、
重点难点
教学重点:
(1)创建类。
(2)对象的声明和实例化。
教学难点:
(1)在类中创建方法。
(2)在类中创建属性。
三、
教学环境
1、
教材处理
教材以广东教育出版社的信息技术(选修一)《算法与程序设计》第五章第三节内容为框架,主题是面向对象功能的实现。为了与第一节内容相衔接,部分内容参考了上海科教版的普通高中信息技术课程实验教材《算法与程序设计》。
采用讲解、任务驱动、实践和学生自主学习相结合的学习方法。
2、
预备知识
学生已认识面向对象程序设计的基本思想,初步了解了类、对象等概念,通过比较得知两种程序设计方法的优劣所在。有了这些基础,学习者明显产生了想进一步学习面向对象设计知识的欲望。
3、
硬件要求:计算机机房或网络教室。
4、
所需软件:学生机要安装VB6.0或以上版本。
5、所需课时:1课时。
四、
教学过程
导入:1、简要介绍本节课的教学目标:学会在VB中创建类和类的属性、方法。学会对象的创建和引用。
2、复习导入。前面我们已经学习了面向对象程序设计的核心概念:类和对象、属性、方法和事件等。而且初步在程序中运用了面向对象的思想来设计调试程序。那么类和对象在VB中是怎样创建和引用的呢?
(一)创建类
创建类的完整过程包括:先创建一个空白类,然后为这个类定义属性,再定义这个类的方法。下面是在VB中创建Student类的全过程。
1、创建类
(1)
选择“文件”→“新建工程”选项,建立一个“标准.EXE”新工程;
(2)
选择“工程”→“添加类模块”选项,打开类模块窗口;
(3)
通过属性窗口将该类命名为Student,如下图一和图二所示:
 
这样就创好了一个Student类,目前在类代码窗口还是空白,因此还是一个空白类。接下来在类代码窗口可以定义该类的属性。
2、创建属性
创建类模块后,可以通过两种方式为类添加属性,即使用公共变量和使用属性过程。
(1)
公共变量
使用公共变量创建属性是最简单的方法。只要在类模块的声明段输入即可。(类模块结构就像一个结构化的程序)定义属性的语句如下:

例如:在活动二中定义Student的属性段如下:
Private m_name As String
‘姓名
Private m_score(3) As Integer
‘三门课程分数的数组
注:用关键字Public声明的属性对应用程序是可见的,程序的任意部分都可能改变属性值。例如,可以将任何具有正确数据类型的值赋给m_name属性。这对于对象的属性来说存在不安全的因素。要将这个属性设置成只读,就要使用下面要讲的利用属性过程创建属性。
用关键字Private声明的属性对应用程序来说是不可见的,达到了隐藏数据的效果,只有属性内部的方法(过程或函数)可调用该属性值。
(2)
属性过程
属性过程是在类中建立属性最安全、最灵活的方法。当用户访问一个属性时,属性过程能执行代码。VB系统提供了三种可用的属性过程:
= 1
\* GB3 ①Property Get:返回属性值的一个函数。供用户读取对象的属性值。
= 2 \* GB3
②Property
Let:设置属性值的一个子程序。供用户写入对象的属性值。
= 3 \* GB3
③Property
Set: Property Let的一个特例,供用户写入对象的属性值为一对象。
属性过程一般成对出现,即具有相同过程名(即属性名)的Property
Get和Property
Let(Set),这样定义属性值可读可写。若只有Property
Get过程,则该属性为只读属性,即应用程序不能直接改变该属性的值。
例:将密码PassWord设置为只读属性,用户不能直接改变;属性Name可读写,则相应程序代码为:

程序说明:
上述模块声明了私有变量mPassWord和mName用于在属性过程间传递数据,对外部程序来说是不可见的,私有变量只在声明的类模块内部过程进行控制。例如,输入姓名值时,该值只能通过Property
Let Name()属性过程保存在变量mName中;读取属性值时,必须调用Property
Get Name()属性过程将mName的值传递给Name属性。这就是数据的隐蔽性。
3、创建方法
类的方法就是在类中定义的过程或函数。前面我们已经学过在VB中创建过程或函数使用Sub或Function关键字。
![文本框: [Public(Private)]Sub 过程名(形式参数表)
语名组
End Sub](5_3.files/image005.gif) ![文本框: [Public(Private)]Function 函数名(形式参数表) As 类型
语名组
函数名=表达式
End Function](5_3.files/image006.gif)
注:用Private定义的作用域,只能调用类中的代码。
用Public定义的作用域,可以在类外部调用代码。
创建一个方法的步骤:
(1)确定方法是公共的还是私有的。那些将从该类外部访问的方法应当声明为Public,其他的方法应当声明为Private。
(2)确定该方法是否返回值。如果一个方法必须返回一个值,必须定义为函数(Function),否则可以定义为一个过程(Sub)。
(3)编写该方法的代码。如前面活动二中的代码
马上行动:运用属性和方法定义的原理,仔细阅读第一节中Student类的定义,解释其中属性的公私有性质及对这些属性进行读写操作的方法。
|
Private m_name As String
Private m_score(3) As Integer
Public Sub SetInf(name As String, s1 As
Integer, s2 As Integer, s3 As Integer)
m_name = name
m_score(1) = s1
m_score(2) = s2
m_score(3) = s3
End Sub
Public Function GetName() As String
GetName = m_name
End Function
Public Function GetScore(index As
Integer) As Integer
GetScore = m_score(index)
End Function
Public Function GetTotal() As Single
GetTotal = m_score(1) * 0.2 + m_score(2)
* 0.5 + m_score(3) * 0.3
End Function
Public Function Judge() As String
If m_score(1) >= 85 And m_score(2) >= 85
And m_score(3) >= 85 Then
Judge = "优秀"
ElseIf GetTotal() > 70 And m_score(1) >=
60 And m_score(2) >= 60 And m_score(3)
>= 60 Then
Judge = "合格"
Else
Judge = "无"
End If
End Function
|
(二)对象的声明和实例化
在类模块中创建一个类后,该类本身不起作用,没有属性值和行为动作。通过创建一个对象来使用和测试一个类,这个对象就是该类的一个实例。通过这个实例来引用类中的属性和方法。在面向对象程序设计中,实际操作的是类的具体实例──对象,类只是一个模板。因此创建一个对象的过程又称为实例化。
每次使用一个类的新对象时,都必须进行以下工作:
(1)
声明对象变量;
(2)
创建对象;
(3)
使用对象的属性、方法等;
(4)
释放对对象的引用。
下面以Student类的对象使用和测试为例,学习在应用程序中使用类的方法。
1、声明对象变量
格式:Dim 对象变量名 As 类名
例如,要为学生类声明一个对象变量──stu,可定义如下:
Dim stu As Student
2、创建对象
我们可以将“声明变量”和“创建对象”的功能集于一体,创建对象。创建对象的语句格式为:
格式:Dim 对象变量名 As New 类名
例如:在活动二中定义了一个Stu对象
Dim stu
As New Student
注:使用New关键字声明的对象变量同时为其分配内存空间。
声明对象变量以后,要创建变量则使用语句:Set对象变量名
=New
类名
3、调用对象的方法
以活动二为例,调用对象的方法如下:。
‘将学生的信息赋给对象
Call Stu.SetInfo(StName,sc1,sc2,sc3)
'获取在文本框中输入的姓名
stu.GetName()
'获取在文本框中输入的各科分数
stu.GetScore(1)
stu.GetScore(2)
stu.GetScore(3)
‘计算总分
stu.GetTotal()
‘判断证书类型
stu.Judge()
4、释放对对象的引用
为了提高计算机内存的使用效率,最重要的一点就是要及时清空内存中那些不再需要的代码。一个新对象的声明就意味着为该对象分派了必须的内存单元。如果该对象不再需要可及时释放。
格式:Set
对象名=Nothing
例如:不再需要对象Stu时,可以这样释放,Set
Stu=Nothing
至此,可以将在VB中的面向对象程序设计的过程总结为:编写类代码→声明类的变量(对象)→根据类创建对象实例→对实例进行属性和方法的设置或调用。如下图三所示:

本章总结如下:
五、课外拓展
课外练习与活动:
1、试用面向对象程序设计方法编制一个求三角形面积的程序。
2、通过合作学习、网上搜索、文献调查或专家访谈、分组活动、软件开发等方式,就面向对象程序设计语言的思想与方法展开讨论和交流,展望计算机程序设计的发展趋势。
参考资料:
算法与程序设计 主编 应吉康 上海科技教育出版社
算法与程序设计 主编 张义兵 教育科学出版社
Visual Basic 6.0程序设计教程 宁正元主编 清华大学出版社 北京交通大学出版社
OOD 启思录 美 Arthur J.Riel著 鲍志云 译
Visual Basic 6.0程序设计 刘新民 蔡琼 白康生 编著 清华大学出版社
|