VB.Net中文教程(5)程序多重定义
点击次数:50 次 发布日期:2008-11-06 08:07:27 作者:源代码网
|
源代码网推荐 源代码网推荐 「程序多重定义」(Function Overloading)又称为「程序重复定义」。它让对象更具弹性﹐能处理多样化之讯息。这观念源于日常生活经验。例如﹐我们常说﹕ 源代码网推荐 ◎ 猫 玩 绣球 源代码网推荐 ◎ 猫 玩 老鼠 源代码网推荐 ◎ 猫 玩 鱼 源代码网推荐 源代码网推荐猫玩绣球与玩老鼠之玩法不尽相同。但何以使用同一动词──「玩」呢﹖也许人们认为其目的是一致的﹕猫获得快乐。上述的「猫」为类别﹐而某只猫是对象。例如﹕加菲猫是对象﹐它可接受讯息── 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 其中﹐「玩」代表着动作和过程﹐而绣球、老鼠及鱼则是「玩」之对象。回想﹐在程序中﹐「程序」代表一项动作及过程﹐而「自变量值」则为程序之处理对象。因之﹐上图可表示为── 源代码网推荐 源代码网推荐 源代码网推荐 图1、 play()之多重定义 源代码网推荐 源代码网推荐 OOP 程序设计之理想为﹕让程序之写法与人们日常生活经验吻合﹐于是设计个Play()程序﹐让它能接受不同型态之资料做为处理对象。上述Play()已具「多重定义」﹐其特点是── 源代码网推荐 1. 程序名称相同﹐例如﹕Play()。 源代码网推荐 2. 自变量不同﹐例如﹕老鼠和鱼。 源代码网推荐 源代码网推荐因猫玩绣球和玩老鼠的方法略有不同﹐例如老鼠是活的而绣球是死的﹐其玩的过程亦不尽相同。为了表示动作与过程之不同﹐Play()程序内之指令也有所不同。例如﹕ 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐写VB程序时﹐其格式必须是── 源代码网推荐 源代码网推荐 Class Cat 源代码网推荐 Public Overloads Sub Play(绣球) 源代码网推荐 指令 源代码网推荐 ....... 源代码网推荐 End Sub 源代码网推荐 Public Overloads Sub Play(老鼠) 源代码网推荐 指令 源代码网推荐 ....... 源代码网推荐 End Sub 源代码网推荐 Public Overloads Sub Play(鱼) 源代码网推荐 指令 源代码网推荐 ....... 源代码网推荐 End Sub 源代码网推荐 End Class 源代码网推荐 源代码网推荐这就是「程序成员多重定义」了。Cat 类别含有三种Play()之定义﹐其自变量不同而且内部指令亦不相同。于是Play()程序能接受不同之自变量﹐并执行不同之指令﹐使得Play()具弹性了。请看个程序── 源代码网推荐 源代码网推荐"ex01.bas 源代码网推荐Imports System.ComponentModel 源代码网推荐Imports System.Drawing 源代码网推荐Imports System.WinForms 源代码网推荐"------------------------------------------------------- 源代码网推荐Class Example 源代码网推荐 Public Overloads Sub Display() 源代码网推荐 MessageBox.Show("****") 源代码网推荐 End Sub 源代码网推荐 Public Overloads Sub Display(ByVal r As Integer) 源代码网推荐 MessageBox.Show(str(r)) 源代码网推荐 End Sub 源代码网推荐 Public Overloads Sub Display(ByVal f As Double) 源代码网推荐 MessageBox.Show(str(f 2)) 源代码网推荐 End Sub 源代码网推荐 Public Overloads Sub Display(ByVal s As String) 源代码网推荐 MessageBox.Show(s) 源代码网推荐 End Sub 源代码网推荐End Class 源代码网推荐"-------------------------------------------------------- 源代码网推荐Public Class Form1 源代码网推荐 Inherits System.WinForms.Form 源代码网推荐 源代码网推荐 Public Sub New() 源代码网推荐 MyBase.New() 源代码网推荐 Form1 = Me 源代码网推荐 "This call is required by the Win Form Designer. 源代码网推荐 InitializeComponent() 源代码网推荐 "TODO: Add any initialization after the InitializeComponent() call 源代码网推荐 源代码网供稿. |
