VisualBasicNET应用教程电子讲稿第九章.ppt_第1页
VisualBasicNET应用教程电子讲稿第九章.ppt_第2页
VisualBasicNET应用教程电子讲稿第九章.ppt_第3页
VisualBasicNET应用教程电子讲稿第九章.ppt_第4页
VisualBasicNET应用教程电子讲稿第九章.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章 面向对象的程序设计,本章要点: 面向对象的基本概念 类的定义与对象的声明 构造器和析构器 类的共享成员和非共享成员 方法重载及其编程实现 类的继承与多态性的编程实现 类的属性的实现,9.1 循序渐进学理论,9.1.1 面向对象程序设计概述 1面向对象程序设计的由来 2面向对象程序设计的基本概念 (1)类和对象 (2)属性、方法与事件 (3)封装 (4)继承 (5)重载 (6)多态性,9.1.2 命名空间,1命名空间的概念 命名空间(NameSpace)是组织类的一种机制,在NET框架中,有一个巨大的类库,该类库提供了在应用程序设计中所需的大部分功能。 2命名空间的使用 (1)直接定位命名空间 (2)使用Imports关键字引用命名空间 3命名空间的定义,9.1.3 类和对象的创建,1类的创建 【例9-1】 定义一个Student类,用来对学生的信息和功能进行描述。假设学生具有学号、姓名、年龄、性别、平均成绩等特征,并且具有设置学生特征和显示学生特征的功能。 2对象的创建 格式:Declare 对象变量名 As New 类名(参数) 3对象的使用,9.1.4 类成员的种类及其可访问性,1类成员的分类 常量 域 方法 属性 事件 构造器 析构器,2类成员的可访问性, 公有成员(Public) 私有成员(Private) 保护成员(Protected) 朋友成员(Friend) 保护友员(Protected Friend) 3类的共享成员和非共享成员,9.1.5 类的构造器和析构器,1构造器 构造器(又称构造函数)主要用来为对象分配存储空间,完成初始化操作(如给类的成员变量赋值等)。 2析构器 析构器(又称析构函数)是在对象销毁时(对象离开作用范围或被赋值为Nothing时)被调用,常用来释放对象占用的存储空间。,9.1.6 方法及方法的重载,【例9-4】 方法重载的演示。新建一个项目,为项目添加一个类模 块,类模块中的程序代码下: Public Class OverTest Public Overloads Function area(ByVal r As Double) As Double 求圆的面积,一个参数 Return (Math.PI * r * r) End Function Public Overloads Function area(ByVal a As Double, ByVal b As Double) As Double 求矩形面积,有两个参数 Return (a * b) End Function,Public Overloads Function area(ByVal a As Double, ByVal b As Double, ByVal c As Double) As Double 求三角形面积,有三个参数 Dim l, s As Double l = (a + b + c) / 2 s = Math.Sqrt(l * (l - a) * (l - b) * (l - c) Return (s) End Function End Class,然后设计一个验证窗体,窗体的设计界面如图9-6所示。在Button1的Click事件过程中输入如下代码: Private Sub Button1_Click((省略参数)) Handles Button1.Click Dim shape As New OverTest() 定义类的实例 Label1.Text = “R is 3.0, Area is “ + CStr(shape.area(3.0) 求圆的面积 求矩形的面积 Label2.Text = “A is 3.0,B is 4.0,Area is “ + CStr(shape.area(3.0, 4.0) 求三角形的面积 Label3.Text = “A is 3.0,B is 4.0,C is 5.0,Area is “ + CStr(shape.area(3.0, 4.0, 5.0) End Sub,图9-6 程序设计界面,图9-7 程序运行界面,9.1.7 属性及其定义,格式:Dim 变量名 As 数据类型 定义存放属性值的变量 Public|ReadOnly|WriteOnly Property 属性名() As 数据类型 Get Get属性过程 Return 变量名 End Get Set (Byval Value As 数据类型) Set属性过程 变量名=Value End Set End Property,9.1.8 事件的声明及其激发,(1)在类中使用Event语句声明一个事件。 格式:Public Event 事件名(参数列表) (2)在类的某个方法中,使用RaiseEvent语句激发事件。 格式:RaiseEvent 事件名(实参列表),【例9-6】 事件的演示。编写一个求矩形面积的应用程序,程序的设计界面如图9-10所示,程序运行时改变了矩形的宽和高,将立即显示出矩形的面积,如图9-11所示。要求:把矩形定义成一个类,宽和高定义成矩形的属性。,图9-10 程序设计界面,图9-11 程序运行界面,9.1.9 类的继承,1继承的实现 格式:Class 派生类名 Inherits 基类名 派生类的成员定义 End Class 2窗体的继承与应用,9.1.10 多态性,多态性是指同一操作作用于不同类的实例,这些类 对它进行不同的解释,从而产生不同的执行结果的 现象。 编译时的多态性是通过方法的重载实现的,由于这 些同名的重载方法或者参数类型不同或者参数个数 不同,所以编译系统在编译期间就可以确定用户所 调用的方法是哪一个重载方法。 运行时的多态性是通过继承和重写来实现的。,9.2 典型实例练能力,9.2.1 典型实例一:Time类的创建与演示 【实例题目】 编写一个名为Time1的类,该类能够存放时间信息,并且具有设置时间和显示时间的功能。然后编程对该类进行测试。测试界面如图9-23所示。,图9-23 时钟类测试界面,9.3 上机练习重应用,9.3.1 上机练习一:栈模型的实现 【练习题目】 栈是一种重要的数据结构,在内存中占用连续的存储单元。栈有两个端点,固定的栈底和浮动的栈顶。为指示栈顶位置还应设一个指示成员变量(称为栈顶指示器)。栈有两种基本操作:push(压栈)和pop(出栈),压栈是向栈顶位置写入一个元素,然后使栈顶指示器加1,出栈是先使栈顶指示器减1,再把该位置的元素读出来。栈及其操作模型如图9-24所示,sp代表栈顶指示器。请编程实现栈的模型并对之进行测试,测试的界面如图9-25所示。,图9-25 栈演示运行界面,9.3.2 上机练习二:从shape类派生出Rectangle、Circle等具体形状类,【练习题目】 定义一个s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论