《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程

上传人:E**** 文档编号:89401357 上传时间:2019-05-24 格式:PPT 页数:51 大小:145.50KB
返回 下载 相关 举报
《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程_第1页
第1页 / 共51页
《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程_第2页
第2页 / 共51页
《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程_第3页
第3页 / 共51页
《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程_第4页
第4页 / 共51页
《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程》由会员分享,可在线阅读,更多相关《《Visual Basic .NET软件开发技术》-吴绍根-电子教案 第5章 在Visual Basic.NET中实现面向对象编程(51页珍藏版)》请在金锄头文库上搜索。

1、第5章 在Visual Basic.NET中实现面向对象编程,第一单元 面向对象的基本概念,类,类就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同特性和行为的一个或多个对象的描述。 有了类这个概念之后,我们就可以实现面向对象编程4个关键的组成部分:抽象、封装、继承和多态了。,对象,与类对应的就是实例了,实例就是由某个特定的类所描述的一个具体的对象。 “对象是类的实例,类是有公共特性的对象的抽象。”,字段、属性、方法和事件,类由字段、属性、方法和事件组成,字段、属性、方法和事件都是对象的成员。 字段表示对象包含的信息。 属性也是用来表示对象包含的信息,属性与字段很类似。

2、 方法表示对象可执行的操作。 事件是对象从其他对象或应用程序接收的通知,或者是对象传输到其他对象或应用程序的通知。,封装、继承和多态,“封装”意味着将一组相关属性、方法和其他成员视为一个单元或对象。换一句话来说,封装实际上就是将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 “继承”描述了基于现有类创建新类的能力。新类继承基类的所有属性、方法和事件,而且还可以在该新类中添加其他属性和方法。 利用多态性性,可以根据调用方法的对象在运行时类型的不同,达到可以使用同一个方法名处理不同的操作的效果。,第二单元 在VB.NET中创建类,使用Class关键字可以创建一个类;类里面可以包含字段、属性

3、、方法和事件 。,举例说明如下,定义一个类,用于描述一个学生的信息,如姓名、成绩等: Public Class StudentClass Public name As String Private score As Single Public Sub inputScore(ByVal sngScore As Single) If sngScore = 0 And sngScore 100 Then score = sngScore Else MessageBox.Show(“输入的成绩不合法!“) End If End Sub Public Function outputScore() RET

4、urn score End Function End Class,在窗体中新建一个Button控件,在其Click事件的处理程序中编写如下代码: Dim st As New StudentClass st.name = “张三“ st.inputScore(80) Dim strTmp As String strTmp = st.name & “ 同学的成绩是: “ & st.outputScore() & “ 分“ MessageBox.Show(strTmp),对象的创建和使用,访问修饰符,访问修饰符定义了类的可访问部分和不可访问部分之间的边界。,Property过程,Property过程

5、是用于给属性赋值或者取属性值的一系列代码。类的成员变量与成员变量对应的Property过程就构成了类的属性. Visual Basic.NET 提供以下 Property 过程: GET 过程用于返回属性值,当在表达式中访问属性时调用它们。 SET 过程用于将属性设置为某值,当给属性赋值时调用它们。,声明Property过程的语法,访问修饰符 ReadOnlyWriteOnly Property 过程名 (参数列) As 数据类型 GET . RETurn 属性值 End GET SET (ByVal value As 数据类型) . 属性值 = value End SET End Prope

6、rty 通过Property过程,可以将属性定义为只读(ReadOnly)、只写(WriteOnly)或读/写类型(默认值为读/写)。 如果属性为只读 (GET)或只写 (SET),则可以单独定义相应的GET或SET过程之一。,举例:定义一个类,用于描述学生的信息,在解决方案资源管理器中点击右键,选择“添加”“添加类”,然后双击添加如下代码: Public Class StudentClass Private number As String Private name As String Private age As Integer Private score As Single,Public

7、 Property inputScore() As Single GET RETurn score End GET SET(ByVal Value As Single) If Value = 0 And Value 100 Then score = Value Else MessageBox.Show(“输入的成绩不合法!“) End If End SET End Property Public Sub inputStudent(ByVal strNumber As String, ByVal strName As String, ByVal intAge As Integer = 0) nu

8、mber = strNumber name = strName age = intAge End Sub Public Sub outputStudent() Dim strTmp As String strTmp = number & “ 号 “ & name & “ 同学:“ & Chr(10) strTmp += “ 年龄:“ & age & Chr(10) strTmp += “ 成绩:“ & score & “ 分“ MessageBox.Show(strTmp) End Sub End Class:,然后,在双击原有窗体的Button1控件,在其Click事件的处理程序中添加如下代

9、码: Dim st As New StudentClass 用StudentClass类声明一个对象 st.inputStudent(“001“, “张三“, 20) st.inputScore = 95 st.outputStudent(),构造函数,构造函数是一个特殊的方法,它在类进行实例化的时候自动运行。在VB.NET中,构造函数总是命名为Sub New。,举例如下,给StudentClass类添加一个构造函数,用于初始化类成员: Public Class StudentClass Private number As String Private name As String Priva

10、te age As Integer Private score As Single Sub New(ByVal strNumber As String, ByVal strName As String, Optional ByVal intAge As Integer = 0) 声明一个构造函数 number = strNumber name = strName age = intAge score = 0 Dim strTmp As String strTmp = name & “ 同学的成绩是: “ & score & “ 分“ MessageBox.Show(strTmp) End Su

11、b End Class 有了构造函数,这样就可以确保你声明的每一个对象的成员都是经过初始化的,避免了引用空值等错误。 Dim st As New StudentClass(“001“, “张三“, 18),注意:构造函数只能由对象在创建时自动调用,永远不能被直接调用。,共享成员,要定义一个共享的字段,只需在字段名前面加上Shared关键字即可,除此之外,其他的要求跟普通的字段一样。 我们知道,每个类对象都有自己的类数据成员的拷贝,但是,共享字段对每个类来说只有一个拷贝,共享字段可被该类的所有对象共享访问。,同理,使用Shared关键字也可以将一个方法声明为共享方法; 如果一个声明为了共享方法,

12、那么,无需实例化该共享方法所在的类对象也可以调用该方法。因为,在对象还没有实例化之前,共享成员就已经存在了。 调用共享方法的方式是:类名后跟一个成员运算符“ . “,然后加上共享方法名。,释放资源,虽然VB.NET对象不存在真正的析构函数,但是它提供了两个方法(Finalize和Dispose)用于释放资源。,重载,所谓重载就是在一个类中用相同的名称但是不同的参数列表创建一个以上的过程、构造函数或属性。 这些被重载的方法除了具有相同的方法名外,每个方法的参数数据类型、或者参数个数、或者参数数据类型的排列顺序必须互不相同。 在方法被调用时,计算机根据参数的不同来决定调用的到底是哪一个具体的方法。

13、,举例,Public Class TryClass Public Function Add(ByVal Num1 As Integer, ByVal Num2 As Integer) As Integer Add = Num1 + Num2 End Function Public Function Add(ByVal Num1 As Double, ByVal Num2 As Double) As Double Add = Num1 + Num2 End Function Public Function Add(ByVal Num1 As String, ByVal Num2 As Strin

14、g) As String Add = Num1 & Num2 End Function End Class 声明一个对象,调用三个重载的方法 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim t As New TryClass MessageBox.Show(t.Add(1, 1) MessageBox.Show(t.Add(1.23, 2.98) MessageBox.Show(t.Add(“Hello “, “Worl

15、d“) End Sub,第三单元 VB.NET中实现类的继承,基本继承,在VB.NET中,子类用Inherits关键字来继承一个父类。 基本继承的格式如下: 访问修饰符 Class 子类名 Inherits 父类名 End Class 注意,VB.NET只允许单一继承,不允许多重继承,即子类不能从多个父类继承而来,它只能继承于一个父类。,阻止继承类,可以在类的声明中加入NotInheritable关键字实现阻止继承,这样可以定义一个不能被子类继承的类。称这种类为阻止继承类。 阻止继承类的定义格式如下: 访问修饰符 NotInheritable Class类名 End Class 当类声明为阻止

16、继承时,其他类就不能够使用Inherits关键字来继承该类的属性和方法等。,重写,当子类从一个父类中继承的时候,可以通过重写父类成员来为子类提供一个不同的实现,重写允许子类使用自己的实现代替相同名称的父类的成员。 在VB.NET中,要实现重写,就必须要在被重写的父类成员前面添加Overridable关键字,在重写的子类成员前面添加Overrides关键字。 要注意,重写的成员必须具有相同的名称、相同的返回值类型、相同的参数数据类型、参数个数和参数排列顺序,否则,不能使用重写。而且,不能重写字段、常量或者共享成员。,覆盖,因为重写有严格的要求,重写的成员必须具有相同的名称、相同的返回值类型、相同的参数数据类型、参数个数和参数排列顺序。但有时候,我们确实不能遵循该规则,这怎么办呢? 这时候,我们可以通过覆盖来隐藏父类成员的实现,而用一个全新的子类成员来代替它。 覆盖与重写不同,无论被覆盖的成员的参数如何,无论被覆盖的成员是否有多个重载,只要父类中的成员与子类中含Shadows关键字的成员同名,那么父类中所有同名的成员都会

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

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

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