• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB 6.0中類聚集關系的實現

    發布: 2007-5-25 09:19 | 作者: 無極 | 來源: programfan.com | 查看: 31次 | 進入軟件測試論壇討論

    領測軟件測試網 ---- 類之間最主要的關系有兩種,它們是聚集(Aggregation)和繼承(Generelization)。聚集表示類之間的關系是整體與部分的關系,例如一個家庭有一個父親、一個母親和若干個孩子。類之間的聚集關系又稱包含關系,一個類由若干個其他類組合而成,當該類的實例被創建后,組成它的各類的實例將自動被創建。

    ---- 下圖描述了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

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>