2011年軟考系統(tǒng)分析師整理資料:面向?qū)ο?8)
十、面向?qū)ο蟮睦?/p>
這里我們將通過(guò)一個(gè)具體的實(shí)例來(lái)認(rèn)識(shí)它的封裝性! 在面向?qū)ο蠓椒?/p>
中,對(duì)象可看成是屬性(數(shù)據(jù))以及這些屬性上的專(zhuān)用操作的封裝體。
封裝是一種信息屏蔽技術(shù),封裝的目的是使對(duì)象的定義和實(shí)現(xiàn)分離。
Step1:
1.1新建一個(gè)工程命名為VBOOP;
1.2單擊工程菜單,選擇添加類(lèi)模塊后并單擊確定按鈕;
1.3在其屬性窗口中將類(lèi)的名稱(chēng)改為T(mén)Score。
Step2:編輯TScore類(lèi)模塊代碼
2.1.這里為T(mén)Score類(lèi)定義四個(gè)私有(Private)變量,它們只能在本模塊
中是可見(jiàn)的,即類(lèi)的一些成員被隱藏起來(lái),用戶(hù)只能通過(guò)屬性過(guò)程
或函數(shù)等方法來(lái)訪問(wèn),從而對(duì)對(duì)象進(jìn)行封裝。
定義變量的基本語(yǔ)法:
Private/Publc <變量名> As <變量類(lèi)型>
代碼部分:
Private FName As String\'學(xué)生的姓名
Private FMath As Single\'數(shù)學(xué)成績(jī)
Private FEnglish As Single \'英語(yǔ)成績(jī)
2.2.為T(mén)Score類(lèi)定義六個(gè)公用(Public)的屬性(Property)過(guò)程和一
個(gè)計(jì)算總分的方法函數(shù)。
定義方法的基本語(yǔ)法:
Private/Publc Property Get <讀屬性過(guò)程名> As <屬性返回值類(lèi)型>;
Private/Public Property Let <寫(xiě)屬性過(guò)程名>(ByVal 變量名 As 返回值類(lèi)型);
Private/Publc Function <函數(shù)名> As <函數(shù)返回值類(lèi)型>;
get: 將模塊中的私有變量的值賦給屬性過(guò)程,通常稱(chēng)為讀;
Let: 通過(guò)屬性過(guò)程給模塊中的私有變量值賦,通常稱(chēng)為寫(xiě)。
代碼部分:
Public Property Get GetName() As String
GetName = FName
End Property
Public Property Let SetName(ByVal Name As String)
FName = Name
End Property
Public Property Get GetMath() As Single
GetMath = FMath
End Property
Public Property Let SetMath(ByVal Math As Single)
FMath = Math
End Property
Public Property Get GetEnglish() As Single
GetEnglish = FEnglish
End Property
Public Property Let SetEnglish(ByVal English As Single)
FEnglish = English
End Property
Public Function Total() As Single\'計(jì)算總成績(jī)函數(shù)
Total = GetMath + GetEnglish
End Function
Step3:回到Form1窗口,在窗口上添加12個(gè)控件:
3.1添加5個(gè)文本框txtName、txtMath、txtEN、txtTotal;
3.2添加5個(gè)標(biāo)簽labName、labMath、labEN、labTotal
其Caption屬性分別為姓名、數(shù)學(xué)、英語(yǔ)、總成績(jī);
3.3添加2個(gè)命令按鈕ComSetValues、ComSearch
其Caption屬性分別為賦值、查詢(xún)。
Step4:編輯窗口事件
4.1.構(gòu)造Score對(duì)象及查詢(xún)關(guān)鍵字SearchKey。在面向?qū)ο蠓椒?/p>
中,我們可以這樣說(shuō)定義類(lèi)就是定義數(shù)據(jù)類(lèi)型,而聲明對(duì)
象就是聲明變量。也就是說(shuō),對(duì)象實(shí)際上就是變量。
Dim Score As New TScore
Dim SearchKey As String
4.2.給模塊中四個(gè)私有變量賦值的單擊事件
Private Sub ComSetValues_Click()
If Val(txtMath.Text) >= 0 And Val(txtMath.Text) <= 100
And Val(txtEN.Text) >= 0 And Val(txtEN.Text) <= 100
Then
With Score
.SetName = txtName.Text
.SetMath = Val(txtMath.Text)
.SetEnglish = Val(txtEN.Text)
End With
txtName.Text = \"\"
txtMath.Text = \"\"
txtEN.Text = \"\"
Print \"姓名:\" & Score.GetName & \"數(shù)學(xué):\" & Score.GetMath & \"英語(yǔ):\" & Score.GetEnglish
Else
MsgBox \"成績(jī)的取值范圍:[0,100]\", 64, \"提示\"
End If
End Sub
【編輯推薦】


2010-12-17 10:53:52
2010-12-16 10:42:56
2010-12-20 10:57:15
2010-12-07 10:36:53
2010-12-21 10:57:26
2010-12-23 10:58:03
2010-12-14 10:51:53
2010-12-16 10:40:23




