VB.NET程序设计基础作者刘钢22702第9章

上传人:E**** 文档编号:91269604 上传时间:2019-06-27 格式:PPT 页数:49 大小:652.50KB
返回 下载 相关 举报
VB.NET程序设计基础作者刘钢22702第9章_第1页
第1页 / 共49页
VB.NET程序设计基础作者刘钢22702第9章_第2页
第2页 / 共49页
VB.NET程序设计基础作者刘钢22702第9章_第3页
第3页 / 共49页
VB.NET程序设计基础作者刘钢22702第9章_第4页
第4页 / 共49页
VB.NET程序设计基础作者刘钢22702第9章_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《VB.NET程序设计基础作者刘钢22702第9章》由会员分享,可在线阅读,更多相关《VB.NET程序设计基础作者刘钢22702第9章(49页珍藏版)》请在金锄头文库上搜索。

1、第9章 面向对象程序设计基础,VB.NET程序设计基础教程,普通高等教育“十一五”国家级规划教材,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,第9章 面向对象程序设计基础,学习目标 了解面向对象技术的基本概念 掌握类的创建和使用 初步掌握类的继承和重载方法 初步掌握使用类的共享成员 了解命名空间的概念 初步掌握命名空间的创建及引用,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,第9章 面向对象程序设计基础,学习内容 9.1 面向对象的相关概念 9.2 类的创建 9.3 类的使用 9.4 类的方法重载 9.5 类的继承 9.6 共享类成员 9.7 命名空间,VB.NET

2、程序设计基础教程,高等教育出版社 主编:刘钢,9.1 面向对象的相关概念 面向对象技术,结构化程序设计方法:面向过程、自顶而下的线性编程过程。 面向对象程序设计:以对象为基础、以事件为驱动来进行编程。 对象:将数据及处理数据的操作封装在一起,作为一个相互依存、不可分离的整体。,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.1 面向对象的相关概念 类与对象,类:描述对象的“结构”,是对象的模板 对象:类的具体化,是类的实例 类和对象由字段、属性、方法和事件组成 字段和属性可以视为对象的特性 方法可以视为对象要执行的操作 事件可以视为对象能响应的动作 例如,一个窗体就是一个对象,其

3、大小、位置、背景色和前景色等就是属性,Close是关闭窗体的方法,单击窗体会触发Click事件。,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.1 面向对象的相关概念 基本特征,封装:对象只显露公用的属性、方法和事件,而将如何实现的过程隐藏在类的内部。 继承:在现有类(基类)的基础上可以创建子类。 子类继承基类所有的属性、方法和事件,并可重写或隐藏基类的属性或方法,同时还可定义新的属性、方法和事件。 提高代码的可重用性和可扩充性。 多态性:把一系列具体事物的共同点抽象出来,再通过这个抽象的对象,与不同的具体对象进行对话。,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢

4、,9.2 类的创建 定义类,类以块的形式来定义 Public Class 类名 类的实现代码 End Class 创建空类: “项目添加类” 在同一个类文件中可以定义多个类,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 声明字段(变量),字段:在类中声明的变量 私有字段:用Private或Dim关键字声明的变量,只能 在类的内部使用 公共字段:用Public关键字声明的变量,可以在类的外 部读取或修改它的值 例:,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 定义属性,定义属性:通过Property过程定义 Set过程设置属性的值 G

5、et过程获得属性的值 定义属性一般用Public关键字,例如:,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 定义属性,只读属性和只写属性的定义方法 只读属性:用ReadOnly Property关键字替换Property 并去除Set过程 只写属性:用WriteOnly Property关键字替换Property 并去除Get过程 公共字段与属性 两者均可以在对象中存储和检索信息,并可在对象的外部访问他们。 通过属性过程定义属性,可以在Set过程中对要赋给属性的值先进行校验,如是否小于零等 。,strName为公共字段,VB.NET程序设计基础教程,高等教育出版

6、社 主编:刘钢,9.2 类的创建 定义方法,方法:类和对象可执行的操作 定义方法:在类中声明Sub过程或Function过程 通过声明Sub过程定义的方法,调用时无返回值 通过声明Function过程定义的方法,调用时必须返回一个值 类中定义的过程默认为是公共的(Public),这样定义的过程可以作为类的方法在类的外部被调用。,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 定义事件,事件:类对外界的响应 1. 声明事件:在类模块的的“声明”段中声明 Public Event 事件名(参数列表) 事件总是被声明为Public型的,不能有返回值,但可以有ByVal或B

7、yRef参数。 例如, 编写事件过程代码时,实参必须与声明的参数相对应,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 定义事件,2. 引发事件: 声明事件之后,还必须在类中放置可引发事件的语句 RaiseEvent 事件名(参数列表) 3. 处理事件 在类的具体实例中,要为该对象所响应的事件编写事件处理代码,语法格式如下: Private Sub 对象名_事件名(参数列表) Handles对象名.事件名 事件处理代码 End Sub 对于自定义类中的事件,在编写事件处理代码之前,还需要使用WithEvents关键字声明响应事件的对象,详见例9.2。,VB.NET程

8、序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 定义构造函数与析构函数,构造函数:对类进行实例化时所调用的函数 析构函数:清除对象、释放对象所占用的系统资源时所调 用的函数 1. 定义构造函数 对象的构造是指通过New关键字来创建类的实例,如 Dim frm As New Form1 其中,New是定义在Form1类中的一个过程(构造函数) 构造函数只在创建类的实例时运行一次,作用是对类的字段进行初始化。例:,此构造函数将字段(变量)douR的初值设为0,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 定义构造函数与析构函数,2. 定义析构函数 析构函

9、数的作用:在释放对象所占用的资源之前执行一些必要的任务,如保存状态信息、关闭文件等。 类中通过名为Finalize的Sub过程来创建析构函数。例: Sub Finalize() douR = Nothing douA = Nothing End Sub 若没有定义Finalize函数,对大多数对象而言,完全可以依靠.NET Framework的垃圾回收器隐式地执行所有必要的内存管理任务。,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 创建类示例,【例9.1】创建一个名为“类的创建与使用”项目,在项目中创建一个有关圆的类Circle1,在该类中: 定义1个属性:Ra

10、dius(半径) 3个方法 GetCircumference:计算圆周长 GetArea:计算圆面积 DoubleRadius:直径 1个事件:ShowResult(在计算圆的直径时引发) 构造函数,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 创建类示例,(1) 创建项目,保存为“类的创建与使用” (2) 执行菜单“项目添加类”命令,创建Circle1类,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.2 类的创建 创建类示例,(3) 按要求在Circle1类中定义属性、方法 、事件和构造函数 讲解代码 (4) 查看类关系图,VB.NET程序设计基

11、础教程,高等教育出版社 主编:刘钢,9.3 类的使用 创建和使用对象,1. 创建对象 先声明对象变量再创建实例 Dim 对象名 As 类名 对象名 = New 类名 声明对象变量的同时创建实例 Dim 对象名 As New 类名 或 Dim 对象名 As 类名 = New 类名 创建模块级对象时,可使用Private关键字,例如: 2. 使用对象:设置属性、调用方法、响应事件等,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.3 类的使用 使用对象示例,【例9.2】继续完善“类的创建与使用”项目,在Form1窗体上添加3个标签、3个文本框和2个按钮 将3个文本框的Name属性值分

12、别设置为txtRadius(半径)、txtCircumference(周长)及txtArea(面积) 将显示结果的2个文本框的ReadOnly属性设置为True 将2个按钮的Name属性值分别设置为btnCalculate1和btnCalculate2,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.3 类的使用 使用对象示例,编写代码: (1) 在窗体的“声明”段创建一个Circle1类的实例 (2) 编写“计算周长和面积”按钮的Click事件过程,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.3 类的使用 使用对象示例,(3) 编写Circle1类的ShowR

13、esult事件过程 在窗体的“声明”段增加声明响应事件的对象 编写“计算直径”按钮的Click事件过程 编写eventCircle对象的ShowResult事件响应代码,增加的声明语句,调用引发ShowResult事件的方法,注意:在“计算直径”按钮的Click事件过程中,必须使用响应事件的对象才能引发事件,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.4 类的方法重载,重载:一个类中可以有多个名称相同的方法,但参数不同 例如:,这两个方法的名字都是GetData,但参数的类型和个数均不相同,实现的功能也不一样。,声明重载方法时,对Overloads关键字的要求:全部使用或全部

14、省略。,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.4 类的方法重载,【例9.3】单击“计算圆面积”按钮,可根据输入的半径,通过Circle1类定义的GetArea方法进行计算;单击“计算圆柱侧面积”按钮,可根据输入的半径和高度,同样通过Circle1类定义的GetArea方法进行计算;结果保留2位小数。,窗体设计 窗体上添加4个标签、4个文本框和2个按钮 将用于输入半径和高度的2个文本框的Name属性值分别设置为txtR和txtH 将显示圆面积和圆柱侧面积的2个文本框的Name属性值分别设置为txtRR和txtHH 将2个按钮的Name属性值分别设置为btnCalculat

15、e1和btnCalculate2,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.4 类的方法重载,创建Circle1类:执行“项目添加类”命令 在Circle1类中定义2个重载方法GetArea,类关系图,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.4 类的方法重载,编写Form1窗体的相关代码,创建一个Circle1类的实例,单击“计算圆面积”按钮,单击“计算圆柱侧面积”按钮,运行程序,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.5 类的继承 继承的实现,继承:子类继承基类的所有属性、方法和事件,可以重写 继承的属性和方法 子类:在现有类(

16、基类)的基础上派生出的新类 1个基类可以有多个子类,但1个子类只能有一个基类 子类中指定所继承的基类: Inherits 基类名,Class1是Class2的基类 Class2继承Class1的所有属性、方法和事件,若用NotInheritable关键字定义基类,则表明所定义的类是不能被继承的。 若用MustInherit关键字定义基类,则表明所定义的类(称为“抽象类”)只能用于继承,不能直接创建它的实例。,VB.NET程序设计基础教程,高等教育出版社 主编:刘钢,9.5 类的继承 重写,重写:子类修改所继承的属性或方法 重写方法时,参数个数、参数类型及函数返回值的类型均要与基类中的同名方法完全一致。 在基类中定义某个属性或方法时,使用关键字 NotOverridable (默认),则不允许在子类中重

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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