---- 下圖描述了Family類與組成它的各類之間的關系。Family類與Father類、Mother類的關系是一對一的關系,而Family類與Child類的關系是一對多的關系。為了簡化類之間的關系,我們增加了一個Children類,Children類是Child類的集合,因此Family類與Children類直接關聯,形成一對一的關系。
Family------------ > Father
|
-------- > Mother
|
-------- > Childred ------ >child
---- VB6.0對類聚集關系的實現提供了較好的支持。在下面的程序中,我們僅給出了與Falimy類、Children類、Child類的具體實現有關的代碼,以此為例說明類聚集關系的實現方法。
---- 程序中定義了三個類模塊:Falimy類模塊,Children類模塊,Child類模塊。在Falimy類模塊中,利用屬性過程,Mother類、Father類、Children類被定義為Family類的只讀屬性。下面是Family 類模塊中聲明部分的代碼。
Option Explicit
Private mFather As New Father
Private mMother As New Mother
Private mChildren As New Children
Public Property Get Father() As Father
Set Father=mMother
End Property
Public Property Get Mother()As Mother
Set Mother()=mMother
End Property
Public Property Get Children() As Children
Set Children= mChildren
End Property
---- 下面是Children類模塊的代碼,首先在類模塊的說明部分創建了集合類Collection的實例mcolChildren。在定義公共方法Add時,通過引用mcolChildren的Add方法將新的Child 對象添加到集合中,Children類被定義成Child類的集合。通過直接引用mcolChildren的屬性Count定義了Children類的公共屬性Count,通過直接引用mcolChildren的方法Item定義了Children類的公共方法Item。
---- 我們還可以根據需要實現其他的屬性和方法。通過創建Children類,與Children類有關的所有代碼都封裝起來,使得Children類可以進一步重用,從而較好地體現了面向對象程序設計的原則。
Option Explicit
Private mcolChildren As New Collection
Public Property Get Count() As Long
Count = mcolChildren.Count
End Property
Public Function Add(ByVal Name As String,
ByVal BirthDayAs Date,ByVal Sex As Boolean ) As Child
Dim empNew As New Child
Static intNum As Integer
With empNew
intNum = intNum + 1
.Name = Name
.BirthDay= BirthDay
.Sex=Sex
mcolChildren.Add empNew
End With
Set Add = empNew
End Function
Public Function Item(ByVal Index As Variant) As Child
Set Item = mcolChildren.Item(Index)
End Function
---- 下面是Child類聲明部分的代碼。
Option Explicit
Public Name As String
Public BirthDay As Date
Public Sex As Boolean
---- 程序中還定義了一個窗體模塊。在窗體上布置有三個文本框txtName、txtBirthDay、txtSex,一個列表框lstChildren,兩個命令按紐cmdAddChild、cmdListChild。
---- 在窗體模塊中首先創建了一個Family類的實例sbMain,Children類和Child類的實例也隨之被創建。在事件過程中,僅通過引用sbMain的屬性Children,我們就可以實現對Children類的各種操作。
Option Explicit
Public sbMain As New Family
Private Sub cmdAddChild_Click()
sbMain.Children.Add txtName.Text,
txtSalary.Text,txtSex.Text
txtBirthDay.Text = " "
txtName.Text = " "
txtSex.Text=" "
End Sub
Private Sub cmdListChild_Click()
Dim emp As New Child
Dim i As Long
lstChild.Clear
For i = 1 To sbMain.Children.Count
Set emp = sbMain.Children.Item(i)
lstChild.AddItem emp.Name & ", "
& emp.BirthDay&", "emp.Sex
Next
End Sub
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月