Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 第4章 面向对象的程序设计方法_第1页
Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 第4章 面向对象的程序设计方法_第2页
Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 第4章 面向对象的程序设计方法_第3页
Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 第4章 面向对象的程序设计方法_第4页
Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新 第4章 面向对象的程序设计方法_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

在线教务辅导网:http://教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187

或者直接输入下面地址:第4章面向对象的程序设计方法本章讲述的主要内容4.1面向对象程序设计的概念4.2类和模块4.3在应用程序中使用类4.4类的继承4.5通过继承实现多态性

4.1面向对象程序设计的概念4.1.1面向对象与传统编程方法的不同

1.传统程序设计方法的设计思路例如,设计一个用户登录程序时,面向过程的程序设计思路如下:

1)创建一个提供用户输入用户名和密码的应用程序界面。

2)用户提交数据后首先判断用户名和密码是否为空,若为空提示出错,否则继续。

3)判断用户输入的用户名是否为合法用户名。是,则继续,否则提示用户名错。

4)判断用户输入的密码是否与输入的用户名匹配。是,则登录成功,否则提示密码错。

可以看出整个程序设计思路是按照事情的发展进行的,也就是围绕着事情发展的过程进行的。4.1面向对象程序设计的概念4.1.1面向对象与传统编程方法的不同

2.面向对象设计方法的设计思路面向对象的程序设计方法模拟人类认识世界的思想方法,将所有实体看作一个对象。仍然是上面的例子,面向对象的程序设计思路如下:

1)同样,首先需要创建一个提供用户输入用户名和密码的应用程序界面。

2)将用户看作一个对象。

3)用户对象拥有一个用于检查用户名和密码合法性的方法。

4)用户提交数据后,调用方法对数据进行检验,并根据检验返回结果确定用户登录是否成功。4.1面向对象程序设计的概念4.1.1面向对象与传统编程方法的不同

3.面向对象程序设计方法的优点

首先,上述两种方法都能完成用户登录程序的设计,但采用面向对象的程序设计方法具有如下一些优点。

(1)可扩展性

在传统的设计方法中功能的实现分散在了很多步骤中,对功能的扩展极为不利。而在面向对象的设计中,功能靠方法来实现,需要新功能时只需要创建新的方法即可,保证了面向对象设计的可扩展性。

(2)分工明确

面向对象的设计方法中将所有问题都划分成相应的对象,程序功能依靠方法来实现,从而使程序各部分有了明确的分工。当因对象发生变化需要修改程序时,可通过较小的局部改动来完成新的需求,保证了程序具有良好的可移植性。4.1面向对象程序设计的概念4.1.1面向对象与传统编程方法的不同

4.面向对象程序设计的基本步骤

前面介绍过,在VisualStudio中进行简单应用程序设计时的主要步骤为:需求分析→设计程序界面→设置控件对象属性→编写实现功能及控制界面的代码使用面向对象技术进行程序设计时的基本步骤为:

1)需求分析。

2)创建一个或多个需要的类,声明其属性和方法。

3)设计程序界面(用户操作界面)。

4)在事件处理程序中对类进行实例化得到相应的对象,通过操作对象的属性,调用对象的方法来实现设计目标。4.1面向对象程序设计的概念4.1.2类和对象1.类和对象的概念面向对象程序设计中“类”的概念从本质上和人们现实生活中的类概念是相同的。例如在编程实践中经常使用按钮(Button)控件,每一个具体的按钮是一个按钮对象,而按钮类则是所有按钮对象的抽象。把这种抽象用计算机编程语言表示为数据集合与方法集合的统一体,就构成了类,然后再用这个类创建一个个具体的按钮对象。也可以把类比作一种蓝图,而对象则是根据蓝图所创建的实例,可以把类比作生产模具,而对象则是由这种模具产生的产品(实例)。所以人们又把对象叫做类的实例。类是对事物的定义,而对象则是该事物本身。4.1面向对象程序设计的概念4.1.2类和对象2.面向对象的三个重要特征(1)封装性开发人员并不需要完全了解类体内每句代码的具体含义,只需通过对象来调用类内某个属性和方法即可实现需要的功能,这就是类的封装性。

(2)继承性一个类可以拥有它继承的类的所有成员,而不需要重新定义,这种特性在面向对象编程技术中称作对象的“继承性。

(3)多态性多态性是指在基类中定义的属性或方法被派生类继承后可以进行更改。4.1面向对象程序设计的概念4.1.3类成员的基本概念

1.字段

2.属性

3.方法

4.构造函数与析构函数4.2类和模块

4.2.1创建类

其语法格式为:[访问修饰符]Class类名

[字段成员][属性成员][方法成员][事件成员][构造函数][析构函数]EndClass4.2类和模块

4.2.1创建类

1.声明类字段字段的声明格式与普通变量的声明格式相同。在类体中,字段声明的位置没有特殊要求,习惯上将字段声明在类体中的最前面,以便于阅读。例如:ClassStudent '定义一个Student类

'声明类的3个字段变量

private_name,_stuclassAsString

private_gradeAsSingleEndClass4.2类和模块

4.2.1创建类

2.声明类属性在类定义中声明属性的语法格式为:[访问修饰符]Property属性名()As类型

GetReturn类变量

EndGetSet(ByValvalueAs类型)

类变量=valueEndSetEndProperty4.2类和模块

4.2.1创建类

3.使用访问修饰符

访问修饰符确定了在什么范围中的对象可以访问类成员。访问修饰符的规定与声明类时使用的修饰符含义相同。在类定义中,如果声明的属性、方法、事件等没有使用任何访问修饰符,则该成员被认为是私有的(private)。如果不涉及继承,private与protected没有什么区别。如果成员被声明为private或protected,则不允许在类定义外使用点运算符访问。在一个类定义中,通常字段被声明为private或protected,这样在类定义外将无法看到字段成员,这就是所谓“数据隐藏”。其他成员通常被声明为public,以便通过这些成员实现对类的字段成员的操作,类定义中的属性用于完成最基本的,对字段的读写操作。4.2类和模块4.2.2类的方法与重载1.定义类的方法在类中创建方法的语法格式1为:访问修饰符Sub方法名(传递参数列表)…… '方法体语句块EndSub在类中创建方法的语法格式2为:访问修饰符Function方法名(传递参数列表)As返回值类型…… '方法体语句块Return表达式 '向调用语句返回值EndFunction4.2类和模块4.2.2类的方法与重载2.方法的重载有时方法实现的功能需要针对多种类型的参数,虽然VB有隐式转换功能,但这种转换在有些情况下会导致运算结果的错误,而有时数据类型无法实现隐式转换甚至根本无法转换。有时方法实现的功能需要处理的数据个数不同,这时会因为传递实参的个数不同而导致方法调用的失败。为解决上述问题,VB允许在同一个类中声明多个具有不同参数集(不同参数数量、不同参数数据类型、不同参数顺序)的同名方法,调用方法时VB编译器能根据调用语句传递过来的参数的具体情况自动选择相应的方法,这种处理方式称为“方法重载”。4.2类和模块4.2.3方法参数的传递方式1.值参数传递方式值参数传递方式是指声明时使用ByVal修饰符修饰参数的传递方式。当使用值类型的参数调用方法时,编译程序将实参的值做一份副本,并且把此副本传递给该方法的相应形参。被调用的方法不会修改内存中实参的值,所以使用值参数时可以保证实参值是安全的。2.引用参数在参数前加上ByRef修饰符声明的参数为引用型参数。值类型参数传递的是实参值的副本,而引用型参数向方法传递的是实参的地址,使得实参的存储位置与形参的存储位置相同。4.2类和模块4.2.4构造与析构函数1.构造函数构造函数实际上是一种特殊的方法,每次创建类的实例时都会调用它,构造函数的主要作用就是自动初始化成员变量。一般情况下不需要为类定义相关的构造函数,因为基类(Object类)提供了一个默认的实现方式。只有在创建类对象的同时为对象设置一些初始状态时才需要声明自定义的构造函数。定义构造函数的语法格式为:[访问修饰符]SubNew([参数列表])'构造函数的主体EndSub4.2类和模块4.2.4构造与析构函数2.析构函数

析构函数也是一种特殊的方法,主要用来在销毁类的实例时,自动完成内存清理工作,又称为垃圾收集器一般来说,对象的生命周期从构造函数开始,以析构函数结束。在创建类的实例时,需要调用构造函数为其分配内存,而当类的实例的生命周期结束前,还必须释放它所占有的内存空间。在一个类中可能有许多对象,每个对象的生命期结束时,都要调用一次析构函数。

需要说明的是,有析构函数的对象占用的资源较多,在内存中驻留时间较长,在垃圾回收器检查到时并不会被销毁,并且还会调用专门的进程负责,从而消耗了更多的系统资源。因此析构函数不能滥用,建议只有在必须时才使用析构函数。4.2类和模块4.2.5类的共享成员

在类成员定义中使用Shared修饰符表示的类成员称为类的“静态成员”。类的共享成员可以是共享字段、共享属性或共享方法。

共享成员属于整个类,所以对共享成员的访问不需要有类的对象实例存在,可直接通过类名称访问。

访问共享成员的语法格式为:

类名称.成员名称由于共享成员属于整个类,所以在任何地方修改这些成员都将体现在该类的所有实例对象中,包括已经存在和新创建的类对象。同样,类的共享属性只能访问共享字段和共享方法,共享方法也只能访问类的共享字段和共享属性。4.2类和模块4.2.6模块模块(Module)是VB提供的一种重要的引用类型。它与类十分相似,可以用来封装数据和程序。向Windows应用程序项目中添加模块的操作方法如下。项目创建或打开后,在解决方案资源管理器窗口中用鼠标右键单击项目名称,在弹出的快捷菜单中执行“添加”下的“模块”命令,在打开的对话框中选择模板类型为“模块”并填写模块文件名后单击“添加”按钮,系统将自动向项目中添加一个扩展名为“.vb”的模块文件。模块文件中的代码以“Module模块名”开始,以“EndModule”结束,开发人员可将需要的代码书写在二者之间即可。模块主要是为应用程序提供全局变量和全局方法。模块中可以包含字段变量成员和方法成员,它们的作用及创建方法与类中的字段、方法基本相同。模块中成员的访问权限有Public和Private。使用模块中公开的成员时无需实例化,可以在程序中直接调用。4.3在应用程序中使用类4.3.1声明和访问类的对象

声明类的对象,也称为“类的实例化”,其声明方法与声明基本数据类型的方法基本相同,语法格式为:

声明类的对象,也称为“类的实例化”,其声明方法与声明基本数据类型的方法基本相同,语法格式为:Dim对象名AsNew类名

访问对象就是访问对象成员,即在应用程序中使用由类创建的对象,其代码编写格式与访问一般常用对象的代码格式完全相同。4.3在应用程序中使用类4.3.2向项目中添加类项和类库

1.添加类项(类文件)4.3在应用程序中使用类4.3.2向项目中添加类项和类库

2.添加类库4.4类的继承4.4.1基类和派生类

1.继承的基本规则

1)继承的单一性。派生类只能继承一个基类,而不能继承多个继承。

2)继承是可传递的。例如,彩色电视机从黑白电视机中派生,液晶电视机又从彩色电视机中派生,那么液晶电视机不仅继承了彩色电视机中声明的成员,同样也继承了黑白电视机中的成员。

3)派生类应当是对基类的扩展。派生类可以添加新的成员,但不能除去已经继承的成员的定义。

4)派生类可以重写基类的成员。

5)构造函数和析构函数不能被继承。在派生类中调用带参数的基类构造函数时应使用MyBase.New(参数列表)语句。4.4类的继承4.4.1基类和派生类2.类继承的应用示例

【演练4-3】4.4类的继承4.4.2使用类关系图

4.5通过继承实现多态性4.5.1多态性的概念

多态性是指一个对象具有不同形式的能力,派生类对象可以像基类对象那样使用,同样的消息可以发送给基类对象也可以发送给派生类对象。在类等级中的不同层次可以共享一个方法名称,而在不同层次中的每个类却各自按照自己的需要来实现这个方法,也就是说,同名方法在不同的层次中有着不同的功能。

例如,某个Door(门)类的Open方法是通过“推”方式来实现的,而Door类的派生类SubDoor表示的是一扇推拉门,其Open方法却需要通过“平移”方式来实现,这就需要在派生类中修改从基类继承来的Open方法,使之与基类的Open方法有不同的表现,这就是所谓的“多态性”。4.5多态性4.5.2重载、重写和隐藏类成员

1.重写派生类中的方法默认情况下,派生类可以从其基类继承属性和方法。如果继承的属性或

温馨提示

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

评论

0/150

提交评论