Visual Basic.NET编程PPT电子课件教案-第9章 OOP(上) .ppt_第1页
Visual Basic.NET编程PPT电子课件教案-第9章 OOP(上) .ppt_第2页
Visual Basic.NET编程PPT电子课件教案-第9章 OOP(上) .ppt_第3页
Visual Basic.NET编程PPT电子课件教案-第9章 OOP(上) .ppt_第4页
Visual Basic.NET编程PPT电子课件教案-第9章 OOP(上) .ppt_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论