《Visual Basic 2005编程基础与项目实践_08.ppt》由会员分享,可在线阅读,更多相关《Visual Basic 2005编程基础与项目实践_08.ppt(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象 Visual Basic 2005具备了面向对象编程(具备了面向对象编程(Object-Oriented Programming,OOP)语言的所有特征。本章)语言的所有特征。本章探讨了在探讨了在Visual Basic 2005中运用面向对象原理编程的基中运用面向对象原理编程的基本方法。面向对象编程主要具有以下几个优点:本方法。面向对象编程主要具有以下几个优点:(1)维护简单。)维护简单。(2)可扩充性。)可扩充性。(3)代码重用。)代码重用。Visual Basic 2005 编程基础与
2、项目实践编程基础与项目实践第第08章章 类与对象类与对象本章学习目标本章学习目标(1)熟练掌握类与对象的概念和创建方法。)熟练掌握类与对象的概念和创建方法。(2)理解命名空间的概念。)理解命名空间的概念。(3)掌握面向对象程序设计的特征。)掌握面向对象程序设计的特征。(4)学会使用)学会使用With语句。语句。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象类类在面向对象编程技术中,类是重点中的重点。简单地说,类是一种提在面向对象编程技术中,类是重点中的重点。简单地说,类是一种提供一定功能的数据类型,本节介绍类的定义方法、类的成员以及类供一
3、定功能的数据类型,本节介绍类的定义方法、类的成员以及类的特征。的特征。1.类的定义类的定义在在Visual Basic 2005中定义一个类要用到关键字中定义一个类要用到关键字Class,其语法格式如,其语法格式如下:下:Public|Private|Protected|Friend|Protected Friend Class End Class Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象类的成员类的成员 类的成员包括字段、属性和方法。其中字段和属性表示对类的成员包括字段、属性和方法。其中字段和属性表示对象的相关信息,方法表示对象可
4、以采取的操作。例如:象的相关信息,方法表示对象可以采取的操作。例如:Form的的ForeColor属性表示窗体的前景色信息,属性表示窗体的前景色信息,Focus方法表示可以对方法表示可以对Form采取设置焦点的操作。采取设置焦点的操作。从应用程序的角度看,字段和属性无法区别,但在类中声从应用程序的角度看,字段和属性无法区别,但在类中声明它们的方式是不同的,字段只是类中的公共变量,而明它们的方式是不同的,字段只是类中的公共变量,而属性则需使用属性则需使用Property过程控制如何设置和返回属性值。过程控制如何设置和返回属性值。Visual Basic 2005 编程基础与项目实践编程基础与项目
5、实践第第08章章 类与对象类与对象字段成员字段成员 类中的字段可以认为是类中的公共变量,下面的代码为类中的字段可以认为是类中的公共变量,下面的代码为CStudent类添类添加了一个名为加了一个名为Name的字段:的字段:Public Class CStudent Public name As String 表示姓名表示姓名 End Class定义定义name的关键字为的关键字为Public,是公共变量,在类外可以直接访问。例,是公共变量,在类外可以直接访问。例如:如:Dim liMing As New CStudent 定义类变量(即对定义类变量(即对象)象)liMing liMing.nam
6、e=李明李明 设置对象设置对象 liMing的的name为为李明李明Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象属性成员属性成员 属性成员是指在类中声明一个局部变量来存储对象的属性属性成员是指在类中声明一个局部变量来存储对象的属性值。使用值。使用PropertyEnd Property来定义属性,可同时来定义属性,可同时添加权限修饰符(如添加权限修饰符(如Public、Shared 等)。等)。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象方法成员方法成员 方法成员就是类中声明的公
7、共子过程或函数过程。方法成员就是类中声明的公共子过程或函数过程。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象类的特征类的特征 类主要有以下四个方面的特征,它体现了面向对象所共有的特征。类主要有以下四个方面的特征,它体现了面向对象所共有的特征。1)封装性 封装是面向对象编程的技术特征之一。封装就是把一个类内部的数据与外部隔绝开来。封装是面向对象编程的技术特征之一。封装就是把一个类内部的数据与外部隔绝开来。经过封装的类,其数据不能由外部直接调用和更改,必须通过类的共有属性或方法经过封装的类,其数据不能由外部直接调用和更改,必须通过类的共有属
8、性或方法来调用和更改。这样,这些属性或方法就成了类与外界交换信息的接口。例如前面来调用和更改。这样,这些属性或方法就成了类与外界交换信息的接口。例如前面定义的定义的VB_Score,它是封装在类,它是封装在类CStudent中的,它无法直接访问,而必须通过已定中的,它无法直接访问,而必须通过已定义的义的score属性或属性或grade方法来访问它。方法来访问它。利用类的封装性可以实现:利用类的封装性可以实现:(1)隐藏类的实现细节。)隐藏类的实现细节。(2)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑
9、,限制对属性的不合理操作。制对属性的不合理操作。(3)便于修改,增强代码的可维护性;例如:对于一些常用的方法或函数或者一些反)便于修改,增强代码的可维护性;例如:对于一些常用的方法或函数或者一些反复出现的常量变量等,都可以把他放到一个类里封装起来。这样,如果需要修改就复出现的常量变量等,都可以把他放到一个类里封装起来。这样,如果需要修改就很方便了,不用去检查所有出现这些变量或函数及方法的地方了。很方便了,不用去检查所有出现这些变量或函数及方法的地方了。(4)可进行数据检查。例如:可以在)可进行数据检查。例如:可以在score属性的属性的Get方法中对方法中对Value值进行有效性检查,值进行有
10、效性检查,不需直接操作变量不需直接操作变量VB_Score。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象2)继承性 继承是扩展类的一种特性。如果需要完成一些新的功能,当然可以创建一个继承是扩展类的一种特性。如果需要完成一些新的功能,当然可以创建一个新类,但如果原有类可以提供一部分用户所需要的功能,就可以创建一个新类,但如果原有类可以提供一部分用户所需要的功能,就可以创建一个扩充原有类的新类,创建的类称为子类或者派生类,原来的类称为基类或扩充原有类的新类,创建的类称为子类或者派生类,原来的类称为基类或父类。有时,子类和继承也用于描述对类的
11、扩充。在父类。有时,子类和继承也用于描述对类的扩充。在Visual Basic 2005中,中,一个类只能继承一个父类,多类继承在一个类只能继承一个父类,多类继承在Visual Basic 2005中是不允许的。中是不允许的。可以通过使用可以通过使用NotInheritable关键字定义不可继承的类,如果扩充这个类就会关键字定义不可继承的类,如果扩充这个类就会引起编译错误。为什么要使类不可继承呢?一个原因是不希望别人扩充自引起编译错误。为什么要使类不可继承呢?一个原因是不希望别人扩充自己的类,另一个原因是不可继承的类产生的代码运行速度更快。尽管这样,己的类,另一个原因是不可继承的类产生的代码运
12、行速度更快。尽管这样,还是应该小心地使用不可继承的类,因为它不符合面向对象编程的初衷,还是应该小心地使用不可继承的类,因为它不符合面向对象编程的初衷,只有在只有在100%肯定不扩充这个类时,才使用肯定不扩充这个类时,才使用NotInheritable关键字使它不可关键字使它不可继承。在有些面向对象编程语言中,这些类也被称作最终的类。继承。在有些面向对象编程语言中,这些类也被称作最终的类。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象重载与多态重载与多态如果一个标识符具有两个或两个以上的意义,就称其为重如果一个标识符具有两个或两个以上的意义
13、,就称其为重载。使用载。使用Overrides关键字可以使派生对象重载继承自关键字可以使派生对象重载继承自父类的特性,重载的方法和基类方法的参数是完全相同父类的特性,重载的方法和基类方法的参数是完全相同的,区别在于具体实现上,重载的方法实现中,通常要的,区别在于具体实现上,重载的方法实现中,通常要调用基类的实现方法,此时,只需要在方法名前面指定调用基类的实现方法,此时,只需要在方法名前面指定MyBase关键字即可。关键字即可。多态性是指用一个名字定义不同的函数,这些函数执行不多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,从而实现同但又类似的操作,从而实现“一个接口,多种方
14、法一个接口,多种方法”。继承、重载都是多态性的表现。继承、重载都是多态性的表现。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象命名空间命名空间 Visual Basic 2005 中的中的“命名空间命名空间”是一种对功能进行组是一种对功能进行组织的很好的方法,其实它们就是建立在整个织的很好的方法,其实它们就是建立在整个.NET框架上框架上的一批类,每种的一批类,每种.NET编程语言都要使用这些命名空间。编程语言都要使用这些命名空间。命名空间是一种命名方案,帮助用户组织应用程序可用命名空间是一种命名方案,帮助用户组织应用程序可用的各种类。可
15、以使用一些被默认引入的命名空间的指令,的各种类。可以使用一些被默认引入的命名空间的指令,而不需要键入其全部冗长的前缀,引入命名空间的关键而不需要键入其全部冗长的前缀,引入命名空间的关键字为字为Imports,位置为所有代码的最上方。,位置为所有代码的最上方。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象对象对象 构造器是类初始化所必须使用的特殊方法,在构造器是类初始化所必须使用的特殊方法,在Visual Basic 2005中,这一方法被称作中,这一方法被称作New。但在前面的代码中可以发现,类中没有定义。但在前面的代码中可以发现,类中没
16、有定义New这个方法。正是这样,如果这个方法。正是这样,如果类中没有定义构造器,类中没有定义构造器,Visual Basic 2005将自动地创建一个构造器,当使用关键字将自动地创建一个构造器,当使用关键字New 对对象进行初始化时,也就调用了类的构造器。当然,也可以自己编写对象在对对象进行初始化时,也就调用了类的构造器。当然,也可以自己编写对象在初始化时所运行的代码。初始化时所运行的代码。如果在程序中创建了构造器,那么如果在程序中创建了构造器,那么Visual Basic 2005就不会再自动为该类创建构造器了。就不会再自动为该类创建构造器了。对象可视为一个单元的代码和数据的组合。它可以是应
17、用程序的一部分,如控件、窗体对象可视为一个单元的代码和数据的组合。它可以是应用程序的一部分,如控件、窗体等,也可以认为整个应用程序是一个对象。等,也可以认为整个应用程序是一个对象。对象是面向对象程序设计的最小元素。此处所指的对象就是类的实例,即类变量。创建对象是面向对象程序设计的最小元素。此处所指的对象就是类的实例,即类变量。创建类的实例并将该实例分配给类变量的过程称为类的类的实例并将该实例分配给类变量的过程称为类的“实例化实例化”,例如:,例如:分配变量分配变量LiMing 以引用类以引用类CStudent的实例的实例Dim liMing As New CStudent该代码等价于:该代码等
18、价于:Dim liMing As CStudent 定义对象定义对象LiMingliMing=New CStudent 实例化对象实例化对象“实例化实例化”是一个过程,通过该过程创建类的实例并将该实例分配给对象变量。任何一是一个过程,通过该过程创建类的实例并将该实例分配给对象变量。任何一个类都必须个类都必须“实例化实例化”后,才能使用其属性和方法。后,才能使用其属性和方法。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象With语句语句 为了省略对对象的多次调用,为了省略对对象的多次调用,Visual Basic 2005提供了提供了Wit
19、hEnd With语句。语句。其语法格式为:其语法格式为:With End With说明:说明:可以是任何的对象,如窗体、控件、自定义类的可以是任何的对象,如窗体、控件、自定义类的实例等。实例等。表示对对象的陈述。表示对对象的陈述。Visual Basic 2005 编程基础与项目实践编程基础与项目实践第第08章章 类与对象类与对象小结小结本章介绍了面向对象编程技术,包括类与对象的概念、类本章介绍了面向对象编程技术,包括类与对象的概念、类的创建以及类的实例化。并详细介绍了面向对象技术的的创建以及类的实例化。并详细介绍了面向对象技术的几个重要概念:继承、封装、重载和多态,然后介绍了几个重要概念:继承、封装、重载和多态,然后介绍了With语句。最后通过一个实例介绍了类与对象的使用。语句。最后通过一个实例介绍了类与对象的使用。重点及难点:重点及难点:(1)类与对象的概念和创建方法,面向对象程序设计的)类与对象的概念和创建方法,面向对象程序设计的特征;特征;(2)命名空间的概念;)命名空间的概念;(3)With语句的语法格式及使用方法。语句的语法格式及使用方法。