任务六VisualBasicNET面向对象语言基础.ppt

上传人:本田雅阁 文档编号:3229893 上传时间:2019-08-03 格式:PPT 页数:43 大小:490.55KB
返回 下载 相关 举报
任务六VisualBasicNET面向对象语言基础.ppt_第1页
第1页 / 共43页
任务六VisualBasicNET面向对象语言基础.ppt_第2页
第2页 / 共43页
任务六VisualBasicNET面向对象语言基础.ppt_第3页
第3页 / 共43页
任务六VisualBasicNET面向对象语言基础.ppt_第4页
第4页 / 共43页
任务六VisualBasicNET面向对象语言基础.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《任务六VisualBasicNET面向对象语言基础.ppt》由会员分享,可在线阅读,更多相关《任务六VisualBasicNET面向对象语言基础.ppt(43页珍藏版)》请在三一文库上搜索。

1、任务六 Visual Basic .NET面向对象语言基础,VB.NET程序设计,VB.NET程序设计,理解面向过程和面向对象的编程概念 理解面向对象的基本概念:对象、类、字段、属性、方法等 理解什么是抽象以及如何从现实世界中的实体抽象成类和对象 创建和使用类 理解类成员的概念,并能够自定义合适的类成员 继承,学习目标,问题引入,在前面创建的系统中,操作数据库的代码是写在每个窗体中使得对数据库操作的代码维护起来比较麻烦,代码量也要重复编写。在实际中,把操作数据库的代码写在一个类中,其它窗体要操作数据库就只要调用这个类的方法就可以啦.,面向过程和面向对象,面向过程 面向过程和面向对象是两种不同的

2、软件开发方法,也代表着分析问题的两种不同思路。面向过程就是分析出解决问题所需要的步骤,程序按照步骤A到步骤B来实现,用户按照一个个的步骤来解决具体问题。 面向对象 面向对象是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。,1、对象和类 对象是实现世界中各种实体的抽象表示,它是数据和代码的集合,有自己的状态和行为。 类是面向对象的基本概念,是对一组具有相同特征(数据元素代码中称之为“属性”)和相同行为(函数代码中一般称之为“方法”)的对象的抽象描述(用程序代码定义)。 比如:香蕉是一种水果,苹果也是一种水果,葡萄、桔子是水果

3、;猫是一种动物,狗也是一种动物,牛、羊都是动物。也就是说现实生活中,我们可以用分类的方法去区别不同种类的东西。在这里,香蕉、苹果、葡萄和桔子就是具体的“对象”,如果把这些对象进行抽象的描述,就可以得出结论:这些“对象”属于水果“类”,因为它们有相同的特征(酸或甜,水份多等)。,理解面向对象的基本概念,对象和类,简单来说,类是一种类型(各种类型的控件就是一个个的“类”)。把工具箱的控件拖到窗体上时,即产生该类控件的一个对象。,面向对象程序设计的重要特征:,继承性 继承性是指基于现有的类(称为父类或基类)创建新类(称为子类或派生类)的机制。 封装性 封装是指将对象的数据和操作包装在一起,从而使对象

4、具有包含和隐藏信息(如内部数据和代码)的能力。 多态性 多态性是指类为方法提供不同的实现形式,但可以用相同名称调用的功能。,1、单击”项目”菜单/添加类 2 、在”添加新项”对话框中选择”类” 3 、在”名称”文本框中输入类名 4 、单击”添加”按钮,在应用程序中添加类(创建类),声明类(类的格式) Public Class 类名 字段、属性、方法、事件等 End Class,类的定义,字段(变量),在类块中声明字段的方式如下: 访问级别 字段名 As 数据类型 其中访问级别有: Public Private Dim,注:用Private或Dim关键字声明的变量为私有字段, 用Public关键

5、字声明的变量为公共字段,字段、属性定义的语法格式如下: Private 变量名 AS 数据类型 Public | ReadOnly | WriteOnly Property 属性名() AS 数据类型 Get Return 变量名 End Get Set (Byval Value AS 数据类型) 变量名 = Value End Set End Property,定义字段和属性,字段和属性常常配合使用,字段一般定义为Private等级,属性定义为Public等级,对于属性而言,访问修饰符省略的话默认为Public,方法是封装在类内部的完成特定操作的过程或函数。要创建方法,实际上就是在类中编写若

6、干个过程(Sub)或函数(Function)。 格式如下: Public | Friend | Private|Protected Sub 方法名() End Sub 访问修饰符省略的话默认为Public Public:表示具有公共访问权限,访问没有任何限制 Friend:友元访问权限,可以从声明上下文内和同一程序中的任何位置访问它们。 Private:私有访问权限,访问限于类的内部 Protected:保护权限,访问权限限于类的内部或派生类中,创建方法,Public Class myrectangle Dim W As Integer Dim H AS Integer Public Prop

7、erty Width() As Integer Get Return W End Get Set(Byval Value AS Integer) W = Value End Set End Property,在应用程序中创建类例子1,Public Property Height() As Integer Get Return H End Get Set(Byval Value AS Integer) H = Value End Set End Property Public Function Area() AS Integer Return W * H End Function End Cla

8、ss,创建一个“myrectangle”类(矩形类)。两个字段W和H,以及对应的两个属性Width和Heigth。一个计算面积的方法Area()。,类定义示例 例子2,定义一个Lion类,有hungry字段和Eat()方法。,Public Class Lion Private hungry As Boolean Public Sub Eat(str As String) MessageBox.Show(str) End Sub End Class,构造函数,在创建对象时总要调用一个特定的方法,这个方法叫做构造函数。构造函数主要用来为对象分配内存空间,完成初始化操作。 当New 一个新的对象时系

9、统就将自动调用相应的构造函数(跟创建对象时类名后面的参数有关)。,构造函数(续),类中构造函数的规定: 构造函数是一个Sub通用过程,过程名为New 当某个类没有定义构造函数时,系统将自动为其创建无参数和无方法体的默认构造函数。 构造函数的访问修饰符是Public 构造函数可以有参数,也可以无参数,可以有多个参数。在一个类中可以定义多个构造函数,构造函数,Public Class myrectangle Public Sub New() W = 3 H = 5 End Sub Public Sub New(Byval x as Integer,Byval y as Integer) W = x

10、 H = y End Sub End Class,在“myrectangle”类的基础上,添加了二个构造函数,一个无参数,一个有两个参数。,构造函数例子2,在Lion类中定义两个构造函数,一个函数无参数, 另一个函数有一个String类型参数,Public Class Lion Private hungry As Boolean Public Sub New() MessageBox.Show(“无参数”) End Sub Public Sub New(ByVal str As String) MessageBox.Show(“一个参数”) End Sub Public Sub Eat(ByV

11、al str As String) MessageBox.Show(str) End Sub End Class,析构函数,1、当对象离开作用范围或被赋值为Nothing时,该对象的生命期结束。 VB.NET使用一个名为Finalize的Sub过程来释放系统资源,这个过程称为析构函数。 2、Finalize析构器是一个受保护的过程,它被系统自动调用,而且不能显式地被调用。,对象的创建,对象的创建和使用,类定义后,就可以创建类的实例(对象),创建类的实例需使用New关键字。类的实例就是对象。,对象的创建和使用,创建对象语句的一般格式如下: 访问级别 As 类名 = New 类名(参数) 访问级别

12、 As New 类名(参数) 访问级别可以是Dim 、Private、Static、Shared等 New关键字是调用构造函数类完成对象的初始化工作。将依据参数类调用相应的构造函数。,对象的使用 创建对象之后,就可以在程序中使用这个对象: 对象调用类中的字段: 对象名.字段名 = 值 变量 = 对象名.字段名 调用对象方法: 对象名.方法名(参数),对象的创建和使用,在应用程序中使用类,在应用程序中使用类,Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B

13、utton1.Click Dim rec As New myrectangle New表示实例化rectangle,就是从rectangle类实例化一个对象rec rec.Height = CInt(TextBox1.Text) rec.Width = CInt(TextBox2.Text) TextBox3.Text = rec.Area End Sub,思考:调用哪个构造函数?,类的继承,从一个已知的类创建新类的语句格式为: Public Class 新类名 Inherits ClassName End Class 其中,ClassName 是基类的名称。 注意:Inherits 语句必须

14、是类定义语句中的第一条语句。,类的继承举例,Public Class Baseclass Public x AS Integer Public y As String End Class Public Class Childclass Inherits Baseclass Public Function Getstring() As String Return y End Function End Class,类的继承继承的范围,当通过继承来创建一个子类时: 1、子类可以从基类中继承所有的用Public和Friend关键字声明的变量、属性和方法。 2、子类不能继承在基类中用Private 关键

15、字声明的变量、属性和方法,这些变量、属性和方法只能在该基类中使用。 3、在基类中使用Protected关键字声明的变量和方法,可以被它的子类继承即可以在子类中直接调用或使用,但对于任何类外部的代码将不能调用。 4、继承具有传递性。若类A有子类B,类B有子类C,则类C不仅继承类类B,有继承了类A的成员。,一道题目,小结,本章主要介绍了面向对象的基本概念,面向对象以抽象和封装的方式将事物划分成类,用对象实例化的操作来解决问题。类包括字段、属性、方法和事件,过程从属于类就成了方法。 面向对象的继承原则允许创建一个基类,然后从这个基类派生出更多的派生类,其中派生类能够继承基类的属性和方法。,1. 填空

16、题 1) 声明为 Private 的一个类成员,只有定义这些成员的类的方法能够访问。 2) 关键字 Class 表示一个类的定义。,习题,2. 判断正误并说明原因 1) 构造函数可以返回值。,习题(续),3. 编程题 1) 使用构造函数的方法来创建Data类,使该类的对象既可以接受一个String类型的数据初始化,也可以接受一个Integer类型的数据初始化。初始化时将输入的内容打印出来。,习题(续),在项目中创建一个DataBase类,定义OleDbConnection、OleDbTransaction、 OleDbCommand对象。定义打开连接、关闭连接连接、返回数据库记录、操作数据库的

17、方法。 在各个Form中操作数据库的代码都修改为通过DataBase类的方法来操作数据库,完成数据库操作任务(实训),课堂实训1(知识点:创建类,字段,属性,方法等),新建一个项目,然后选择项目|添加类命令,出现添加新项。在对话框中的名称中输入“类”的名称。 定义一个新类Person,定义私有(Private)的name, age字段;定义一个无参数的构造函数,再定义一个有两个参数的构造函数,这两个构造函数都用来初始化name、age;最后定义两个方法GetAge和GetName,分别用来得到age、name值,课堂实训2 (知识点:创建类的继承),在前面的基础上,添加一个新类Student,

18、继承Person类;在Student类中添加字段score和相应的构造函数,以及方法GetScore()来获得score字段值。再在窗体上添加一个Button按钮,当单击这个Button时,调用 GetAge、GetName和getSocer方法,在Text Box控件中显示出得到的age、name和score值。,以下内容为选学内容,重载与重写-重载,多态性在面向对象程序设计中是非常重要的特性,在VB.NET中可以利用重载与重写来实现多态性。 1、重载(Overloading) 重载是在一个类中使用相同的名称,但有不同的参数类型,创建一个以上的方法或属性。 重载意味着可以在一个类中,多次声明

19、相同名字的方法或属性,只是每一次的声明,都有不同的参数列表。 在VB.NET中利用“Overloads”关键字,将类中的方法或属性声明为重载的类型。,重载与重写,重载举例:创建一个在数据库中查找具有相同姓名、相同年龄或相同工资的人员的类。查找到的满足条件的记录,存放在ArrayList结构数组中。 Public Class Search Public Overloads Function Getperson(ByVal Name As String ) As ArrayList End Function Public Overloads Function Getperson(ByVal Age

20、 As Integer ) As ArrayList End Function Public Overloads Function Getperson(ByVal Salary As Single ) As ArrayList End Function End Class,重载与重写- 重写,多态性在面向对象程序设计中是非常重要的特性,在VB.NET中可以利用重载与重写来实现多态性。 2、重写(Overriding) 重写就是在不影响基类的情况下,子类对从基类继承的属性和方法,可以进行修改和扩充。 在子类中重写基类的属性和方法时,就会产生多态性。通过重写,子类可以重复使用基类中相同的方法或属性

21、名称,但各方法或属性中,所包含的代码却完全不同。,重载与重写-重写,当通过继承创建一个新类,并要重写方法或属性时,应按如下步骤操作: 在基类中使用Overridable关键字声明要重写的方法和属性。 在子类中,子类定义语句后的第1个语句应是Inherits语句。 在子类中使用Overrides关键字来声明重写的方法和属性。,重载与重写,重写举例:基类Class1 Public Class Class1 Public Sub Sub1( ) MsgBox(“This Is Superclass”) End Sub Public Overridable Sub Sub2(ByVal Index A

22、S Integer) MsgBox(“This Is Superclass”) End Sub Public Overridable Function F2(ByVal Name AS String) As String MsgBox(“This Is Superclass”) End Function End Class,重载与重写,重写举例:子类Class2 Public Class Class2 Inherits Class1 Public Overrides Sub Sub2(ByVal Index AS Integer) MsgBox(“This Is Subclass”) End Sub Public Overrides Function F2(ByVal Name AS String) As String MsgBox(“This Is Superclass”) Return Name End Function End Class,重载与重写,重写的注意事项: 1、如果在基类中不使用“Overridable”关键字定义属性和方法,那么在继承的子类中将无法重写相应的属性和方法。 2、在子类中重写基类的方法时,方法的名称必须相同,并且参数的类型和个数也必须相同。 3、在子类中重写基类的方法时,方法返回结果的类型必须相同,否则在程序中将会产生二义性。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1