Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计

上传人:E**** 文档编号:89184173 上传时间:2019-05-20 格式:PPT 页数:62 大小:490.50KB
返回 下载 相关 举报
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计_第1页
第1页 / 共62页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计_第2页
第2页 / 共62页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计_第3页
第3页 / 共62页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计_第4页
第4页 / 共62页
Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计》由会员分享,可在线阅读,更多相关《Visual Basic程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 电子教案 第13章 面向对象的程序设计(62页珍藏版)》请在金锄头文库上搜索。

1、第13章 面向对象的程序设计,第13章 面向对象的程序设计,面向对象程序设计(OOP,Object-Oriented Programming)是目前主流程序设计方法,它取代了传统的结构化程序设计技术,代表着程序设计的发展方向。,13.1 面向对象程序设计概述 面向对象程序设计方法是由结构化程序设计方法发展而来的,它摆脱了结构化程序设计中需要对过程进行全面设计的方法(不但要告诉计算机“做什么”还要告诉计算机“怎么做”)。将所涉及的一切实体全部当作一个“对象”来看待,并且将这些对象分别归属到不同的“类”中。在程序杓剖通过更改对象的属性、触发对象的事件和调用对象的方法,控制程序的执行进程。而且在VB

2、中使用的大多数对象都是系统以“控件类”的形式定义好的,程序员在使用时只需将其从工具箱中添加到窗体上(创建控件类的实例)即可。对于一些特殊的问题,程序员还可以创建自定义类或ActiveX控件。,13.1.1 对象和类 对象(Object)是代码和数据的集合,就像现实生活中的一个实体。如一只气球是一个对象,一台电脑也是一个对象。 在VB环境下,常用的对象有各种控件、窗体、菜单、应用程序的部件以及数据库等。这些对象都具有属性(数据)和行为方式(方法)。简单地说,属性用于描述对象的一组特征,方法为对象实施一些动作,对象的动作常常需要触发事件,而触发事件又可以修改属性。一个对象建立以后,其操作可通过与该

3、对象有关的属性、事件和方法来描述。,“属性”、“方法”和“事件”是对象的基本元素。在VB程序设计过程中,可以通过这三个基本元素来操纵和控制对象。 面向对象程序设计主要是建立在类和对象的基础之上。通常的面向对象程序设计中的类都是由程序员自己开发的。而在VB中,类可以是系统设计好的,也可以由程序员根据需要自行设计。,在VB中,工具箱上的可视类图标是系统设计好的标准控件类,此外还可以在“工程”菜单中执行“部件”命令,加入大量的Active X控件。通过将这些类实例化,可以得到真正的控件对象。当程序员在窗体上“画”出一个控件时,就自动将其转化为对象了。 除了通过控件类产生控件对象外,VB还提供了许多系

4、统对象,如打印机(Printer)、剪贴板(Clipboard)、屏幕(Screen)、应用程序(App)等。 窗体是一个特例,它既是类,也是一个对象。当向一个工程添加一个新窗体时,实质就由窗体类创建了一个窗体对象。窗体是控件对象的容器,也是应用程序的界面。,13.1.2 类的继承性 继承性指的是一个新类可以从现有的类中派生出来,新类具有父类中所有的特性,直接继承了父类的方法和数据,新类的对象可以调用该类及父类的成员变量和成员函数。继承是从一种对象类型构造另一种对象类型的一个主要方法。利用继承性,可以在已经定义的对象类型基础上创建更复杂、更专业的对象类型,只要加进所需属性和方法,将新对象与上级

5、对象区别开来即可。,13.1.3 类的封装性 任何程序都包含两个部分:代码和数据。在结构化程序设计模式中,数据在内存中进行分配,并由子程序和函数代码处理;而在OOP模式中是将处理数据的代码、数据的声明和存储封装在一起。一个对象中的数据和代码相对于程序的其余部分是不可见的,它能防止那些非期望的交互和非法的访问。 封装就是将对象的属性和方法封装到具有适当定义接口的容器中。对象接口提供的方法和属性应使对象能够如期使用。 封装是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节,只需用设计者提供的消息来访问

6、该对象即可。,13.1.4 类的多态性 所谓多态是指一个名字可具有多种语义,多态引用表示可引用多个类的实例。多态可为一种对象类定义一种方法的多种实现方案,这些方法是通过类型和可接受的参数来区分的。 多态性有时也指方法的重载。方法的重载是指同一个方法名在上下文中有不同的含义,是该类以统一的方式处理不同数据类型的一种手段。 从对象接收消息后的处理方式看,多态性指的是同一个消息被不同的对象接收时解释为不同意义的能力。也就是说,同样的消息被不同的类对象接收时,产生完全不同的行为。利用多态性,用户能发送一般形式的消息,而将其所有实现的细节留给接收消息的对象去解决。,13.2 VB中预定义的类和对象 VB

7、中有各种对象,包括窗体、控件、屏幕、打印机等。这些对象是由VB系统提供的,称为“预定义对象”。它们由系统建立,用户可以直接使用但不能修改。,13.2.1 通过控件类创建对象 VB中绝大多数预定义类都以控件的形式存放在控件工具箱中,称为“控件类”。当把它们添加到窗体上后,实际上是完成了类的实例化操作,即创建了一个控件对象。 例如,工具中的命令按钮控件CommandButton以一个图标的形式存放在工具箱中,此时它是一个控件类,代表着不同大小、不同外观样式、不同文字提示的一组按钮。如果双击将其添加到窗体上,就完成了类的实例化操作,在窗体上创建了一个确定的按钮控件。此后可设置该对象的属性,并编写需要

8、的事件代码或在代码中调用对象的椒取,13.2.2 通过代码创建对象 在应用程序中可以使用代码将预定义类和自定义类实例化,从而获得一个对象。设计时首先需要在声明段声明一个对象变量,其语法格式为: Dim | Private | Public WithEvents 对象变量名 As 类名 在声明了一个对象变量后可以在程序中任何地方使用Set语句为其赋值,即将类实例化。Set语句的语法格式为: Set 对象变量名=对象 对于控件对象可以使用Controls集合的Add方法实例化,其语法格式为: Controls.Add (ProgID, name, container),【例13-1】通过程序代码动

9、态地创建一个命令按钮控件,并编写该按钮的Click事件代码。使得按钮被单击时能弹出一个信息框,程序运行结果如图13-1所示。 图13-1 程序运行结果,程序设计步骤如下: 新建一个VB工程,打开代码窗口。在声明段声明对象变量。 由于需要使用对象的事件,故应带有WithEvents关键字 Dim WithEvents ctlCommand As CommandButton 声明ctlCommand为命令按钮类型,窗体装入时执行的事件代码如下: Private Sub Form_Load() 实例化一个按钮对象 Set ctlCommand = Controls.Add(“VB.CommandBu

10、tton“, “ctlCommand1“, Me) 设置CommandButton对象的大小及位置 ctlCommand.Width = 1000 设置按钮的宽度 ctlCommand.Height = 400 设置按钮的高度 ctlCommand.Top = 600 设置按钮距顶端的距离 ctlCommand.Left = (Form1.Width - ctlCommand.Width) / 2 设置按钮水平居中 设置CommandButton对象的标题属性 ctlCommand.Caption = “请单击“ 设置CommandButton为可见 ctlCommand.Visible =

11、True End Sub,按钮控件被单击时执行的事件代码如下: Private Sub ctlCommand_Click() MsgBox “这是由代码创建的按钮, 64, “提示“ End Sub,13.3 在应用程序中创建和使用类 VB提供了类(Class)模块让用户利用相关的属性、方法和事件创建自己的类。类模块的优点是它们可以分别编译并被其他Windows应用程序所使用。类模块可以看作是没有可视界面的控件。 无论是简单的类还是复杂的类,其创建步骤基本一致,一般分为四个步骤:插入一个类模块、定义类的属性、添加类的方法、响应缺省事件和创建自定义事件。,13.3.1 创建和使用自定义类 创建自

12、定义类,首先需要向VB工程中添加一个“类模块”。 类模块创建后,可双击“工程资源管理器”中类模块的名称进入类代码编辑窗口,根据需要编写相应的代码。 例如,希望创建的类能实现将指定字符串逆转的功能(如,输入“0123456789”,得到“9876543210”),可在类模块中编写代码如下: 在声明段声明全局变量Name,作为类的属性。 Public Name As String 声明Name为全局变量(对象的属性),创建一个公用过程,作为类的方法。该方法用于将Name表示的字符串进行逆转。 Public Sub reverseName() 公共过程(对象的方法) Dim i As Integer

13、 Dim str As String For i = 1 To Len(Name) str = Mid(Name, i, 1) & str 后取出的字符放置在前面 Next Name = str 将逆转后的字符串赋值给全局变量Name End Sub 图13-5 程序运行结果,如果希望在应用程序中使用自定义类,只需编写命令按钮的Click事件代码如下: Private Sub Command1_Click() Dim myobject Set myobject = New Class1 myobject.Name = Text1.Text myobject.reverseName Text2.

14、Text = myobject.Name End Sub 程序运行时,用户可在Text1中输入任意的一个字符串,单击【逆转】按钮将得到图13-5所示的结果。,类模块与标准模块的不同点在于存储数据的方法不同。标准模块的数据只有一个备份,这就意味着一个公共变量的值改变后,在后面的程序中再次读取该变量时,将得到改变后的值。而类模块的数据是相对与类实例而独立存在的,不同实例中的数据是相互隔离的。类实例中的数据只存在于对象的存活期,它随对象的创建而创建,随对象的撤销而消失。,在应用程序中创建和使用类的一般步骤为: 1) 在VB工程中添加一个类模块。 2) 在类模块代码窗口中编写代码,声明类的属性和创建类

15、的方法。 3) 在应用程序中使用Set语句将类实例化(生成一个对象)。 4) 在应用程序代码中设置对象属性、调用对象的方法,从而通过类实现特定的功能。,13.3.2 向类中添加属性 在创建了类之后,可以使用声明公共变量和使用属性过程的方式定义其属性。上例中使用的公共变量Name实际上就是类Class1的一个属性。 1. 使用公共变量添加属性 创建类属性最简单的方法就是使用公共变量,只要在类模块的声明段声明它们即可,其语法格式如下: Public 属性名 As 类型 例如: Public Name As String 设置类的Name属性为字符型。 使用公共变量定义属性的缺点是无法对其有效性进行

16、检查。一旦建立了对象,公共变量对应用程序是可见的,程序的任意部分都可以改变变量的值。,2. 使用属性过程添加属性 在类中建立属性最安全、最灵活的方法是使用属性过程。属性过程具有封装功能,一般在应用于下列场合时应当使用属性过程: 1) 属性为只读或一旦设置就不能更改的情况。 2) 属性已设置的值需要合法性验证。 3) 属性的设置可导致一些对象状态的改变或改变其他属性及内部变量值。,尤其属性过程提供了建立只读属性的功能,这在使用公共变量时是不可能的。系统提供的3种可用的属性过程,见表13-1。 表13-1 可用的属性过程,【例13-2】创建一个Rectangle(矩形)类,并声明Width(宽)和Height(高)两个Public属性。 1) 添加类模块及属性过程。添加一个类模块,并在属性窗口中将其“名称”属性设置为Rectangle。执行“工具”菜单下“添加过程”命令,在图13-6所示的对话框中选择“属性”,在对话框“名称”栏中填入“Width”后单击【确定】按钮。Height属性的框架可参照同样

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号