Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新第6章 接口委托和事件

上传人:w****i 文档编号:92485488 上传时间:2019-07-10 格式:PPT 页数:14 大小:84.50KB
返回 下载 相关 举报
Visual Basic .NET程序设计教程 第2版  教学课件 ppt 作者 刘瑞新第6章 接口委托和事件_第1页
第1页 / 共14页
Visual Basic .NET程序设计教程 第2版  教学课件 ppt 作者 刘瑞新第6章 接口委托和事件_第2页
第2页 / 共14页
Visual Basic .NET程序设计教程 第2版  教学课件 ppt 作者 刘瑞新第6章 接口委托和事件_第3页
第3页 / 共14页
Visual Basic .NET程序设计教程 第2版  教学课件 ppt 作者 刘瑞新第6章 接口委托和事件_第4页
第4页 / 共14页
Visual Basic .NET程序设计教程 第2版  教学课件 ppt 作者 刘瑞新第6章 接口委托和事件_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新第6章 接口委托和事件》由会员分享,可在线阅读,更多相关《Visual Basic .NET程序设计教程 第2版 教学课件 ppt 作者 刘瑞新第6章 接口委托和事件(14页珍藏版)》请在金锄头文库上搜索。

1、第6章 接口、委托和事件,本章讲述的主要内容 6.1 接口 6.2 委托 6.3 事件,6.1 接口,6.1.1 接口的声明和实现 接口主要用来定义一个抽象规则,必须要有类或结构继承它并实现接口中的所有定义,否则定义的接口就毫无意义。因此,使用接口时应首先声明接口,再声明一个继承于该接口的类来实现接口中定义的成员。 1. 接口的声明 在VB中,声明接口使用Interface关键字,其语法格式为: 访问修饰符 Interface 接口名 Inherits 基接口名 接口成员 End Interface,6.1 接口,6.1.1 接口的声明和实现 2. 接口的实现 接口的实现需要声明一个继承于某接

2、口的类,并在类中完成接口中所有定义(属性、方法等)的具体实现。 3. 在应用程序中使用接口 在应用程序中并不直接使用接口,而是通过继承了接口的类来实现。,6.1 接口,6.1.2 多接口继承 一个接口可以同时继承多个接口的定义,被继承的接口称为基接口。当一个接口有多个基接口时,声明语句中基接口之间应使用“,”分隔。例如: Interface ICon Inherits ICon1, ICon2 同时继承于ICon1和ICon2 End Interface 一个类也可以继承于多个接口,当类继承的多个接口中存在同名的成员时,在实现时为了区分是从哪个接口继承来的,VB建议使用显式实现接口的方法,即使

3、用接口名称和一个句点命名该类成员。,6.1 接口,6.1.3 接口与抽象类的区别 1) 抽象类可以提供字段,它所定义的成员可以有多种可访问性,而接口只能定义公开(public)的成员,而且不能定义字段。 2) 抽象类可以为方法提供公有或默认的实现,这样子类就可以减少工作量。但是接口定义的方法却不能包含有任何实现,所有实现都需要子类来完成。 3) 抽象类的成员不一定需要子类重载,只有抽象成员才需要重载。而接口的所有成员都必须由其子类重载。 4) 一个子类只能继承于一个基类,但一个子类却可以继承于多个接口。,6.2 委托,委托(Delegate)也是一个类,它定义了方法的类型,使得可以将方法当作另

4、一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用选择结构语句(Ifelse、Select Case等),同时使得程序具有更好的可扩展性。 委托使程序员可以将方法的引用封装在委托的对象内,然后将该委托对象传递给可调用所引用方法的代码中,而不必在编译时知道具体将调用哪个方法。 委托不知道也不关心自己引用的对象或类,只是方法的参数类型和返回类型必须与委托的参数类型和返回类型相匹配,这使得委托完全适合“匿名”使用。也就是说,委托是一种用于封装方法的类型,也可以说是一种方法的指针或容器。利用委托开发人员可以将方法作为参数进行传递,从而实现动态调用方法的目的。,6.2 委

5、托,6.2.1 委托的声明 前面介绍过委托也是一种类,包括指定每个方法必须提供的返回类型和参数。定义委托的语法格式为: Delegate Sub|Function 委托名( 形参列表 ) As 返回类型 例如,下列代码声明了一个名为Arithmetic(计算)的委托,该委托从调用语句接收2个整型形参,返回一个整型数据。 Delegate Function Arithmetic(ByVal x As Integer, ByVal y As Integer) As Integer 需要说明的是并非所有的方法都可以封装在委托中,只有当下面两个条件都成立时,方法才能被封装在委托类型中。 1) 它们具有

6、相同的参数数目,并且类型相同,顺序相同,参数修饰符也相同。 2) 它们的返回类型相同。,6.2 委托,6.2.2 委托的实例化和调用 1. 委托的实例化 要实例化委托,就要调用该委托的构造函数,并将要与该委托相关联的方法及其对象名称作为它的参数进行传递。委托实例一旦被实例化,它将始终引用同一目标对象和方法。将委托与方法进行关联时需要使用AddressOf关键字。 例如,设已创建了上述定义的Arithmetic委托相匹配的方法Add,实例化委托的代码如下: 实例化委托,并与指定方法关联 Dim ari As New Arithmetic(AddressOf Add),6.2 委托,6.2.2 委

7、托的实例化和调用 2. 在应用程序中调用委托 VB为调用委托提供了专门的语法。当调用非空的、调用列表仅包含一个进入点的委托实例时,它调用列表中的方法,委托调用所使用的参数和返回的值均与该方法的对应项相同。调用委托与调用方法相似。唯一的区别在于不是调用委托的实现,而是调用与委托相关联的方法的实现代码。 在对委托进行了声明之后,就可以使用委托了。在VB中使用委托同使用一个普通的引用数据类型一样,首先需要使用New运算符创建一个委托实例对象,然后把委托指向要引用的方法,最后就可以在程序中像调用方法一样应用委托的实例对象调用它指向的方法。,6.2 委托,6.2.3 将多个方法关联到委托 上面的例子中在

8、实例化委托时将其关联到了一个方法,在实际应用中可能需要将一个委托同时绑定到多个方法,此时可使用Delegate类提供的Combine方法来实现。 【演练6-1】,6.3 事件,在Windows应用程序中“事件”是指能被程序感知到的用户或系统发起的操作。如用户单击了鼠标、输入了文字、选择了选项;系统将窗体装入内存并初始化等。VB中包含了大量预定义的隶属于各种控件的事件,如Click、Load、TextChange等。在代码窗口中设计人员可以编写响应事件的代码段(常称为“事件过程”)来实现程序的具体功能,这就是可视化程序设计方法的“事件驱动”机制。当然,除了系统预定义的各种事件外,开发人员还可以通

9、过委托创建具有特定功能的自定义事件以满足程序设计的需要。,6.3 事件,6.3.1 关于事件的几个概念 为了使读者能更清晰的理解事件的概念,本节首先介绍几个与事件相关的概念。 1. 发布者 2. 订阅者 3. 事件处理过程,6.3 事件,6.3.2 定义和使用事件 在VB中定义和使用事件通常需要经过以下几个步骤。 (1) 声明一个类,并在类中使用Event语句声明事件,使该类成为事件的发布者。 (2) 在类中创建一个方法,用于在满足一定条件时使用RaiseEvent语句触发事件。 (3) 使用WithEvents语句创建一个前面声明的类的实例对象,使对象成为类中所包含事件的订阅者。 (4) 创

10、建事件处理过程,并使用Handles关键字关联前面声明的事件,为系统指明当事件发生时,应执行本过程中的代码。 (5) 在应用程序中声明一个(1)中创建的类对象,通过类对象调用(2)中创建的方法,以便在满足条件时触发事件,事件触发后系统将执行事件处理过程中包含的代码。 【演练6-2】,6.3 事件,6.3.3 AddHandler与RemoveHandler语句 AddHandler语句与前面介绍过的Handles相似,两者都用来指定事件处理程序。但是,AddHandler与RemoveHandler一起使用时提供了比Handles子句更大的灵活性,它们允许动态地添加、移除和更改与某事件关联的事件处理程序。而且,如果希望处理共享事件或结构中的事件,则必须使用AddHandler语句。 【演练6-3】,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号