《VisualBasicNET应用教程电子讲稿第九章.ppt》由会员分享,可在线阅读,更多相关《VisualBasicNET应用教程电子讲稿第九章.ppt(24页珍藏版)》请在三一办公上搜索。
1、第9章 面向对象的程序设计,本章要点:面向对象的基本概念 类的定义与对象的声明 构造器和析构器 类的共享成员和非共享成员 方法重载及其编程实现 类的继承与多态性的编程实现 类的属性的实现,脐篡棚虎捧宫黄楚程掘伞泅杨垒遮瓶巴冯满老拓写鸯榆匙庆禄乖烦香吝厨VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1 循序渐进学理论,9.1.1 面向对象程序设计概述 1面向对象程序设计的由来 2面向对象程序设计的基本概念(1)类和对象(2)属性、方法与事件(3)封装(4)继承(5)重载(6)多态性,仅错讣漠瘪处纺玻砧屏扮义馆群典波捏淫甩岭彩钨侗绢甸芜寸
2、载迸普朔拙VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.2 命名空间,1命名空间的概念 命名空间(NameSpace)是组织类的一种机制,在NET框架中,有一个巨大的类库,该类库提供了在应用程序设计中所需的大部分功能。2命名空间的使用(1)直接定位命名空间(2)使用Imports关键字引用命名空间3命名空间的定义,悉沤默襟介蛔赘屁魂的掌卒只越抿愁律蝎圈饥留嚼吕情邢祸蹿科搽降弗客VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.3 类和对象的创建,1类的创建【例9-1】定义
3、一个Student类,用来对学生的信息和功能进行描述。假设学生具有学号、姓名、年龄、性别、平均成绩等特征,并且具有设置学生特征和显示学生特征的功能。2对象的创建 格式:Declare 对象变量名 As New 类名(参数)3对象的使用,侍粗绿露颅乍草卉谁谩遣甜鼻诧酞吓民省福悸宝咙示记免抹婆酉突磨累拿VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.4 类成员的种类及其可访问性,1类成员的分类 常量 域 方法 属性 事件 构造器 析构器,秸拼缀吝协忠玩峰齿舰沏勋庄壶暮杖脓瑟瞳链厚喝缆巍搓珠幌羡退诡毕对VisualBasicNET应用教程
4、电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,2类成员的可访问性,公有成员(Public)私有成员(Private)保护成员(Protected)朋友成员(Friend)保护友员(Protected Friend)3类的共享成员和非共享成员,吩总川作腑弯疗僳拦袖急单虎炯于堕算跪京樱旋飘通防乌狸噬耿励咯提迟VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.5 类的构造器和析构器,1构造器 构造器(又称构造函数)主要用来为对象分配存储空间,完成初始化操作(如给类的成员变量赋值等)。2析构器 析构器(又称析构函数)是在对
5、象销毁时(对象离开作用范围或被赋值为Nothing时)被调用,常用来释放对象占用的存储空间。,贮版额嚎眷岳三汲眩藕概垂露率添极愈逢彩而京荔啮咳沙横额雷溢葫卷仍VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.6 方法及方法的重载,【例9-4】方法重载的演示。新建一个项目,为项目添加一个类模块,类模块中的程序代码下:Public Class OverTest Public Overloads Function area(ByVal r As Double)As Double 求圆的面积,一个参数 Return(Math.PI*r*r)E
6、nd Function Public Overloads Function area(ByVal a As Double,ByVal b As Double)As Double 求矩形面积,有两个参数 Return(a*b)End Function,庙吝幸蹬屹垣侄椭绚行欺支期跃贩圃麦裤洛泉豺颜曰容扳纯蔼醉涯闯软港VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,Public Overloads Function area(ByVal a As Double,ByVal b As Double,ByVal c As Double)As Doub
7、le 求三角形面积,有三个参数 Dim l,s As Double l=(a+b+c)/2 s=Math.Sqrt(l*(l-a)*(l-b)*(l-c)Return(s)End FunctionEnd Class,甭嫂绚传楞菱锨逗肮嘉捣琶右舀热酶实旁裳宣渠越始呈葛仿腻藐谢肪罚谬VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,然后设计一个验证窗体,窗体的设计界面如图9-6所示。在Button1的Click事件过程中输入如下代码:Private Sub Button1_Click((省略参数))Handles Button1.Click Di
8、m 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,赋敝淤晌吕赢椒藤燎谊弓枉玩兔枷现螟程盒欺搞颖牙伦瀑议朵唯卢循夜耳VisualBasicNET应用教程电子讲
9、稿第九章VisualBasicNET应用教程电子讲稿第九章,图9-6 程序设计界面,图9-7 程序运行界面,瓶善捣靳逊蒲拐称化箱伞狸丁碍噬旺迄妊甩量瑚征斗氧笔忆率颊择弓勾喝VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.7 属性及其定义,格式:Dim 变量名 As 数据类型 定义存放属性值的变量 Public|ReadOnly|WriteOnly Property 属性名()As 数据类型 GetGet属性过程 Return 变量名 End Get Set(Byval Value As 数据类型)Set属性过程 变量名=Value
10、End Set End Property,泌旨照硕烫裸诚渗丢扯牵毛去蕊薪偿市涝赫治哇啊鬃萌菇之触淹瘩术烛狼VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.8 事件的声明及其激发,(1)在类中使用Event语句声明一个事件。格式:Public Event 事件名(参数列表)(2)在类的某个方法中,使用RaiseEvent语句激发事件。格式:RaiseEvent 事件名(实参列表),咳仓波授第名拔耽瞥妊晋再竖燎应朋纲芍坯疆拭孜企淋洼借乎成盟袁史泰VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲
11、稿第九章,【例9-6】事件的演示。编写一个求矩形面积的应用程序,程序的设计界面如图9-10所示,程序运行时改变了矩形的宽和高,将立即显示出矩形的面积,如图9-11所示。要求:把矩形定义成一个类,宽和高定义成矩形的属性。,弛稳艺罗烟饮智标碾朔烷冉某博暗萌甚龙矗伟粪造爆篓阔闰仆揪咨赃媚绍VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,图9-10 程序设计界面,图9-11 程序运行界面,质鸡知释把拨翼号听缩芹冶努诌传穗被掩腥唇庐靴谰敛敢招随绷钱酿叠诀VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九
12、章,9.1.9 类的继承,1继承的实现 格式:Class 派生类名 Inherits 基类名 派生类的成员定义 End Class2窗体的继承与应用,押白宗墙夷了享味碎仑侗辰瓜边庸短哮府或刚哲煽回畦考赌盆瓦朵轿洒磊VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.1.10 多态性,多态性是指同一操作作用于不同类的实例,这些类对它进行不同的解释,从而产生不同的执行结果的现象。编译时的多态性是通过方法的重载实现的,由于这些同名的重载方法或者参数类型不同或者参数个数不同,所以编译系统在编译期间就可以确定用户所调用的方法是哪一个重载方法。运行时的
13、多态性是通过继承和重写来实现的。,庚蜀熔枕契梢砰稗蘸毁抽眨吩种配郑耿淳这惰韭熊吹雌锑评伸氖曹甩拭伙VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.2 典型实例练能力,9.2.1 典型实例一:Time类的创建与演示【实例题目】编写一个名为Time1的类,该类能够存放时间信息,并且具有设置时间和显示时间的功能。然后编程对该类进行测试。测试界面如图9-23所示。,折佳殊投囱瑰纸喳勒荫囤可倪杭蔼逮除讼再停湛公脐苗啼嫂纳世跪啊潦涪VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,图9-23 时钟
14、类测试界面,栏墅热表扬燥亢忆缎平隆棉剂亥清切吹私狄到祟横娘助凹养姻魄牺屎二躬VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.3 上机练习重应用,9.3.1 上机练习一:栈模型的实现【练习题目】栈是一种重要的数据结构,在内存中占用连续的存储单元。栈有两个端点,固定的栈底和浮动的栈顶。为指示栈顶位置还应设一个指示成员变量(称为栈顶指示器)。栈有两种基本操作:push(压栈)和pop(出栈),压栈是向栈顶位置写入一个元素,然后使栈顶指示器加1,出栈是先使栈顶指示器减1,再把该位置的元素读出来。栈及其操作模型如图9-24所示,sp代表栈顶指示器
15、。请编程实现栈的模型并对之进行测试,测试的界面如图9-25所示。,蛊贪钦禽竞容挽滴拷奔愚纱驶怒因掂潜连搓渴滩曝祸庶冶茵著坟窝募八舷VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,殆敝尽聚召卿偿澡戎横敖踢诛矩憨拦困铝要锐懈月轿你晴怂珐妙概且砷金VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,图9-25 栈演示运行界面,房饥亲有智隅磕嘉竭耙利簿寝赐抹福鸳叮断础野藐告琉搏伏雾炼湖柳氯棒VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,9.3.
16、2 上机练习二:从shape类派生出Rectangle、Circle等具体形状类,【练习题目】定义一个shape抽象类,利用它作为基类派生出Rectangle、Circle等具体形状类,已知具体形状类均具有两个方法GetArea和GetPerim,分别用来求形状的面积和周长。最后编写一个测试程序对产生的类的功能进行验证,验证程序的运行界面如图9-26所示。,否丫讣碱毗朔眉答负榔臃憨声伪渤湃顿橇蝇申厦灵党嘻迂滩百苞晴撕沫瘟VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,图9-26 形状类及其派生类验证运行界面,粮丑惕摘邵刃形帐讽晃寐乐擒萎撩哼醛紧打含哨魄淄东蟹斥鸦药蜒户办屎VisualBasicNET应用教程电子讲稿第九章VisualBasicNET应用教程电子讲稿第九章,