国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

VB6.0中類聚集關系的實現

2019-11-18 17:52:17
字體:
來源:轉載
供稿:網友
----類之間最主要的關系有兩種,它們是聚集(Aggregation)和繼承(Generelization)。聚集表示類之間的關系是整體與部分的關系,例如一個家庭有一個父親、一個母親和若干個孩子。類之間的聚集關系又稱包含關系,一個類由若干個其他類組合而成,當該類的實例被創(chuàng)建后,組成它的各類的實例將自動被創(chuàng)建。

----下圖描述了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類模塊中聲明部分的代碼。

OptionExplicit
PRivatemFatherAsNewFather
PrivatemMotherAsNewMother
PrivatemChildrenAsNewChildren
PublicPropertyGetFather()AsFather
SetFather=mMother
EndProperty
PublicPropertyGetMother()AsMother
SetMother()=mMother
EndProperty
PublicPropertyGetChildren()AsChildren
SetChildren=mChildren
EndProperty

----下面是Children類模塊的代碼,首先在類模塊的說明部分創(chuàng)建了集合類Collection的實例mcolChildren。在定義公共方法Add時,通過引用mcolChildren的Add方法將新的Child對象添加到集合中,Children類被定義成Child類的集合。通過直接引用mcolChildren的屬性Count定義了Children類的公共屬性Count,通過直接引用mcolChildren的方法Item定義了Children類的公共方法Item。
----我們還可以根據需要實現其他的屬性和方法。通過創(chuàng)建Children類,與Children類有關的所有代碼都封裝起來,使得Children類可以進一步重用,從而較好地體現了面向對象程序設計的原則。

OptionExplicit
PrivatemcolChildrenAsNewCollection
PublicPropertyGetCount()AsLong
Count=mcolChildren.Count
EndProperty
PublicFunctionAdd(ByValNameAsString,
ByValBirthDayAsDate,ByValSexAsBoolean)AsChild
DimempNewAsNewChild
StaticintNumAsInteger
WithempNew
intNum=intNum 1
.Name=Name
.BirthDay=BirthDay
.Sex=Sex
mcolChildren.AddempNew
EndWith
SetAdd=empNew
EndFunction
PublicFunctionItem(ByValIndexAsVariant)AsChild
SetItem=mcolChildren.Item(Index)
EndFunction

----下面是Child類聲明部分的代碼。
OptionExplicit
PublicNameAsString
PublicBirthDayAsDate
PublicSexAsBoolean

----程序中還定義了一個窗體模塊。在窗體上布置有三個文本框txtName、txtBirthDay、txtSex,一個列表框lstChildren,兩個命令按紐cmdAddChild、cmdListChild。
----在窗體模塊中首先創(chuàng)建了一個Family類的實例sbMain,Children類和Child類的實例也隨之被創(chuàng)建。在事件過程中,僅通過引用sbMain的屬性Children,我們就可以實現對Children類的各種操作。

OptionExplicit
PublicsbMainAsNewFamily
PrivateSubcmdAddChild_Click()
sbMain.Children.AddtxtName.Text,
txtSalary.Text,txtSex.Text
txtBirthDay.Text=""
txtName.Text=""
txtSex.Text=""
EndSub
PrivateSubcmdListChild_Click()
DimempAsNewChild
DimiAsLong
lstChild.Clear
Fori=1TosbMain.Children.Count
Setemp=sbMain.Children.Item(i)
lstChild.AddItememp.Name&","
&emp.BirthDay&","emp.Sex
Next
EndSub->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 依安县| 秦皇岛市| 盐津县| 荆门市| 益阳市| 房产| 本溪市| 扶沟县| 比如县| 鹤山市| 天柱县| 河津市| 天津市| 积石山| 突泉县| 高邑县| 波密县| 深水埗区| 仁怀市| 方正县| 太白县| 上栗县| 鄯善县| 峨眉山市| 伊春市| 琼结县| 拜城县| 宁河县| 南涧| 河西区| 密云县| 洛扎县| 钟祥市| 义乌市| 扎鲁特旗| 江孜县| 玉田县| 岱山县| 黔西县| 涿鹿县| 辽阳县|