Visual Basic OOP Part 2 -- 類別與物件

  • 類別(Class)說的是物件的「型別」
  • 物件則是類別之可使用的「執行個體」
以上很清楚說明,我們撰寫的Class最終是要當成型別(Type)使用。但Class無法直接使用,我們將Class建立成Object,因此,建立物件的動作稱為「執行個體化」。

再以藍圖作比喻,若Class是藍圖,Object就是根據藍圖所蓋的建築物。藍圖是一個計畫一張圖,它無法住人,它不會增值、它無法投資,它無法買賣,但當它建好之後,它就是實實在在的透天、高樓、豪宅,這棟建築物會擁有藍圖上的一切。同一份藍圖,可以建A棟、B棟、第一期、第二期,每一棟、每一期都是活生生個體,這個建造過程就是稱執行個體化。

所以Class會描述組成Object的屬性、欄位、方法和事件,和藍圖描述建築物組成項目的道理相同。就像藍圖可用來建造許多建築物一樣,藍圖來用描述的「結構」,單一Class也是用 來建立任何所需數量的Object。而且就像藍圖會定義使用建築物的人可使用建物的哪些部分,Class也可透過封裝控制使用者可存取的Object項目。

Public Class Person
    ' 共同屬性
    Property FirstName() As String
    Property LastName() As String
    Property Sexy() As Boolean
    Property Birthday() As DateTime

    ' 共同方法
    Public Overridable Function Age() As String
        Return (Now.Year - _Birthday.Year + 1).ToString()
    End Function
End Class

不管你是自行撰寫或是使用.NET Framework提供的類別,最終都是要拿來當型別使用。

Dim Bruce As New Person

在.NET Framework是使用「New 關鍵字」來進行執行個體化。執行個體化之後 Bruce 物件可擁有 Person 類別的屬性、方法。

Dim Bruce As New Person
Bruce.FirstName = "KK"
Bruce.LastName = "Bruce"
' ...

現在你可以開始可以使用它,存取 Bruce 物件的屬性、執行 Bruce 物件的方法,而且全部都是透過「.」(點符號)。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。