已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章 oop(上),9.1 使用.net创建类 9.2 构造函数 9.3 public和private 9.4 共享方法 9.5 共享变量 9.6 方法重载(overload) 9.7 自定义事件 9.8 属性过程和属性重载(了解),9.1 使用.net创建类,类:类只是一个模板,相当于类型。.net的控件都是类,比如button。 对象:对象是类的实例,相当于变量,编程实际使用的控件,比如button1,都是对象。 类可以自行定义 类定义语法: public class 类名 属性定义,比如string name 方法定义,sub或function end class,类定义例子 public class worker public name as string 属性 public address as string public salary as double public function total(byval monthes as double) as double total = salary * monthes 方法(函数) end function end class,9.1 使用.net创建类,对象(类实例)例子 dim x as new worker 定义对象 x.name=“tom“ x.address = “fuzhou university“ x.salary = 2000.0 msgbox(x.total(10) 计算10个月的总收入,9.1 使用.net创建类,form1的对象: vb.net应用程序的默认启动窗体是form1 form1的对象在运行时由.net自动生成。 在程序中使用me引用form1的对象 一个应用程序可以同时运行多个,此时form1的对象被创建了多个。 其它类的对象必须在程序中用dim/new语句创建。 如果默认启动窗体是form2或其他窗体,则其对象也是自动被创建。 如果无默认启动窗体,则每个窗体的对象都必须用dim/new语句创建。,9.1 使用.net创建类,添加类操作 1、菜单操作 文件|添加新项|类 项目|添加类 默认类名是class1,可以修改。 不要使用myclass,因为它是vb.net的关键字 类文件默认名class1.vb,9.1 使用.net创建类,2、直接在代码窗口中输入 打开form1.vb,将类定义输入在form1的 end class 之后, 或者public class form1之前。 与form1.vb共用一个文件 3、多个类可以共用一个文件, 4、类可以嵌套定义,9.1 使用.net创建类,作用:一般用于初始值设置。 特点: 可以没有构造函数,定义对象时用new,不带参数,也不带扩号。如 dim x as new worker 如果有构造函数,定义对象时也用new,要带扩号,而且所带参数必须于某个构造函数定义一致。 构造函数可以有一个,名字是new,参数自定。 构造函数也可以有多个,名字都是new,但各个构造函数参数必须不同。,9.2 构造函数,构造函数例子1 public sub new(byval name as string) me.name = name end sub 构造函数例子2 public sub new(byval name as string, byval address as string) me.name = name me.address = address end sub,9.2 构造函数,构造函数例子3 public sub new(byval name as string, byval address as string, byval salary as double) me.name = name me.address = address me.salary = salary end sub,9.2 构造函数,上述3个构造函数可以共存在类定义中。调用时根据参数的不同,自动选择合适的构造函数。下列定义都可以使用。 dim x as new worker(“peter“) x.address = “xiamen university“ x.salary = 1500.0 dim y as new worker(“mike“, “beijing“) y.salary = 2200.0 dim z as new worker(“tony“, “ny“,3000),9.2 构造函数,public和private:用在属性或方法前面。 public:表示属性或方法可以被对象引用。 private:表示属性或方法不可以被对象引用。 public和private:用在类定义前面。 public:表示类可以在工程外部引用定义对象。 private:表示类不可以被工程外部引用定义对象。,9.3 public和private,public class worker public name as string 公共属性 public address as string private salary as double 私有属性 public sub new() 构造函数 end sub private function total(byval monthes as double) as double total = salary * monthes 方法(函数) end function end class,9.3 public和private,例子: dim x as new worker(“peter“) x.address = “xiamen university“ x.salary = 1500.0 错误 msgbox(x.salary) 错误 msgbox(x.total(10) 错误 其它:protected、friend等,见表9-1。在第十章中进一步说明。,9.3 public和private,作用:可以直接使用的方法,不必创建对象。 也叫静态方法或者类方法。(s型) 定义:在sub或function前加上shared 例子: class abc public shared function sum( byval x as double,byval y as double ) as double return x+2*y end function end class,9.4 共享方法,使用: dim x as double x=abc.sum(2.3 ,4.5) dim obj as new abc x=obj.sum(2.3 ,4.5) 说明: 非共享方法叫做实例方法(i型)。一般的方法都是非共享方法。,9.4 共享方法,作用:在同一类的每个对象中共有的变量,大家共用同一个内存空间,而且取值一样。(s型) 定义:在变量名前加上shared。 例子: class student public name public shared school as string end class,9.5 共享变量,使用例子: dim stu1 as new student stu1.name=”张三” stu1.school=”福州大学” dim stu2 as new student stu2.name=”李四” 此时李四的school也是”福州大学” 说明: 非共享变量叫做实例变量(i型),在每个对象中使用不同的内存空间,取不同的值。如上述的name变量。,9.5 共享变量,作用:在类定义中允许多个函数有相同的名字,但参数必须不同。调用时根据参数的不同来决定执行哪一个函数。 构造函数也可以重载:例子如前。 定义: 方法1:直接写多个同名函数定义。 方法2:在同名的sub或function前加上overloads。 注意: overloads要加都加,要不然都别加。,9.6 方法重载(overload),例子: class student public name public overloads sub a() name=“” end sub public overloads sub a(byval x as string) name=x end sub end class,9.6 方法重载(overload),例子: class student public name public sub a() name=“” end sub public sub a(byval x as string) name=x end sub end class,9.6 方法重载(overload),自定义事件的使用方法 1、在某个类定义中,比如c,定义自己的事件,如et。 2、在类的某个方法,比如a,让自定义事件发生。 3、在主程序中定义类c的对象,比如x。 4、在主程序中写处理x.et的过程,如b。 5、在主程序中调用x.a激发事件et,让b去处理。,9.7自定义事件,在类中自定义事件方法 在类中某个成员函数中让事件发生 public class c public event et(参数表) sub a(参数表) 用function亦可。 raiseevent et(参数) end sub end class,9.7自定义事件,在类外定义带事件类对象: withevents x as new c 在类外编写自定义事件处理过程: sub b(参数表) handles x.et end sub 在类外激发自定义事件: x.a(参数),9.7自定义事件,控件progressbar: 功能:显示进度条。 属性value:设置进度值,范围0-100。在程序中不断改变value数值,就可以显示进度动画。 属性step:设置进度变化的步长, 默认值为10。 自定义事件例子:使用进度条prograssbar控件。 运行效果:单击窗体后,进度条显示动画。 步骤如下。,9.7自定义事件,1、新建项目,增加进度条控件prograssbar1 2、打开代码窗口,在类form1后增加带事件的新类 public class c public event et(byval x as integer) public sub a() dim i as integer for i = 0 to 100 step 10 raiseevent et(i) next end sub end class,9.7自定义事件,3、在类form1中增加类变量 w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大脑中动脉闭塞的护理
- 雨课堂学堂在线学堂云《比较诗学(川大 )》单元测试考核答案
- 2026年质量员之土建质量基础知识考试题库及参考答案(b卷)
- 2026英大泰和财产保险股份有限公司高校毕业生招聘10人备考题库附答案
- 2026年质量员之土建质量专业管理实务考试题库200道附完整答案【易错题】
- 2026年质量员之土建质量基础知识考试题库附参考答案(夺分金卷)
- 崇义县2025年公开招聘城市社区工作者笔试备考题库附答案解析
- 南充临江建设发展集团有限责任公司2025年下半年公开招聘工作人员笔试模拟试卷带答案解析
- 2025广东广州天河区同仁艺体实验中学招聘英语教师1人备考公基题库带答案解析
- 南充市公路管理局南充市水务局2025年公开遴选工作人员(3人)备考公基题库附答案解析
- 2025届中考生物复习课件 主题5 第5讲 人体生命活动的调节
- DB21T 3820-2023 示范型居家和社区养老服务中心建设规范
- 天津市滨海新区2023-2024学年四年级上学期语文期末试卷
- 2022年199管综真题及答案解析
- 监 理 安 全 责 任 制
- 幼儿园小班班本课程果然有趣
- 儿童共同抚养协议书范文
- GB/T 25052-2024连续热浸镀层钢板和钢带尺寸、外形、重量及允许偏差
- 十五五规划编制指导手册
- DL5000-火力发电厂设计技术规程
- 基于网络流量分析的威胁检测研究
评论
0/150
提交评论