【正文】
l n As String, ByVal a As Integer, ByVal s As Single) name = n age = a salary = s End Sub Public Function GetName() Return name End Function End Class [例 41]()定義一個(gè)雇員 Employee 構(gòu)造函數(shù)和析構(gòu)函數(shù) – 構(gòu)造函數(shù)完成對(duì)象的初始化工作。類修飾符見(jiàn)表 41。是生產(chǎn)實(shí)例對(duì)象的模板,是對(duì)同一類對(duì)象的抽象。 第 4章 本章要點(diǎn): ? 類的創(chuàng)建與使用 ? 類的繼承 ? 委托與事件 類 ? ,它提供了類繼承機(jī)制、構(gòu)造函數(shù)、析構(gòu)函數(shù)、重載等面向?qū)ο筇匦浴? 類定義 ? 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類被作為一種數(shù)據(jù)結(jié)構(gòu),是數(shù)據(jù)和對(duì)數(shù)據(jù)操作的集合體。其語(yǔ)法格式為: ? 類修飾符 Class 類名 ? 類體 ? End Class ? 其中,關(guān)鍵字 Class、類名、 End Class和類體是必須項(xiàng),其他項(xiàng)是可選項(xiàng)。類體用于定義類的成員,成員可以是變量、屬性、方法和事件。其語(yǔ)法格式為: – Sub New(參數(shù)) – 語(yǔ)句 – End Sub – 它是類中首先運(yùn)行的代碼,它只在對(duì)象創(chuàng)建時(shí)運(yùn)行一次。 – 析構(gòu)函數(shù)主要用于釋放類實(shí)例,在銷毀對(duì)象時(shí)使用。 ? %page LANGUAGE = vb% ? script language=vb runat =server ? public class Complex ? private imag, real as double ? public message as String ? public Sub New() ? message = New... ? imag = 0 ? real = 0 ? end sub ? public sub New(byval r as double, byval i as double) ? message = New(r,i)... ? imag = i ? real = r ? End sub ? end class [例 42]()使用構(gòu)造函數(shù) ? /script ? HTML ? HEAD ? titleTest Class/title ? /HEAD ? BODY ? TABLE width=100% bordercolor=blue border=1 ? TR height=25 bgcolor=blue ? TD align=centerfont color=white程序輸出結(jié)果/font/TD/TR ? TR bgcolor=whiteTD ? % ? dim c as new plex() ? () ? dim cc as new plex(10,20) ? () ? % ? /TD ? /TR ? /TABLE ? /BODY ? /HTML 程序輸出結(jié)果如圖 41所示: ? 點(diǎn)評(píng): 程序中,定義了一個(gè)復(fù)數(shù)類 plex。同時(shí),聲明了兩個(gè)不同的構(gòu)造函數(shù),一個(gè)給兩個(gè)字段賦初值為 0,一個(gè)給兩個(gè)字段賦初值為特定值。類實(shí)例創(chuàng)建的格式為: – Dim 實(shí)例名 As New 類名(參數(shù)) –建立一個(gè)類實(shí)例,并使用類的構(gòu)造函數(shù)初始化類實(shí)例。例如: – Dim p As Employee –p = new Employee(“l(fā)i”, 23, 2020) 字段與屬性 1. 字段 字段表示與對(duì)象或類相關(guān)聯(lián)的變量。例如: Class Point Dim x As Integer Dim y As Integer Public Sub New(ByVal a As Integer, ByVal b As Integer) x = a y = b End Sub End Class 在 Point類中添加兩個(gè)字段 x和 y,用于封裝 Point類的 x和 y坐標(biāo)。比如窗口標(biāo)題、窗口位置、客戶名稱等,都可以作為屬性。 屬性過(guò)程是在屬性定義中聲明的代碼塊,這些屬性過(guò)程指定在屬性值被讀取或?qū)懭霑r(shí)需執(zhí)行的語(yǔ)句。甚至,它們還可以對(duì)此類特性進(jìn)行計(jì)算。 屬性聲明的語(yǔ)法形式: 屬性修飾符 Property 屬性名(參數(shù)列表) As 數(shù)據(jù)類型 Get 語(yǔ)句 End Get Set(屬性過(guò)程參數(shù)) 語(yǔ)句 End Set End Property 其中,屬性修飾符包括: Public、 Protected、Friend、 Protected Friend 或 Private,用于指明屬性的可訪問(wèn)性;屬性的參數(shù)列表與過(guò)程和函數(shù)的參數(shù)列表含義和用法均相同; Get和 Set為屬性過(guò)程, Get過(guò)程利用返回語(yǔ)句把屬性值返回給調(diào)用者,Set過(guò)程用屬性過(guò)程參數(shù)給屬性賦新值,如果不顯式指明屬性過(guò)程參數(shù),編譯器將使用隱式參數(shù) Value 來(lái)給屬性賦新值。然而,也可以使用 ReadOnly 或 WriteOnly 修飾符來(lái)限制對(duì)屬性的讀取或修改,產(chǎn)生只讀和只寫屬性。只寫屬性不能有 Get 屬性過(guò)程,它只能被寫入值,不能從屬性讀取值。 動(dòng)手做: %page LANGUAGE = vb% script language=vb runat =server Class Window Private pWidth As Double = 30 Private pHeight As Double = 20 Public Property width() As Double Get Return pWidth End Get Set(ByVal value As Double) pWidth = value End Set End Property Public ReadOnly Property height As Double Get Return pHeight End Get End Property End Class [例 43]()使用屬性 /script HTML HEAD titleTest Property/title /HEAD BODY TABLE width=100% bordercolor=blue border=1 TR height=25 bgcolor=blue TD align=centerfont color=white程序輸出結(jié)果/font/TD/TR