- Class
Class是用來封裝功能程式碼的邏輯單位。 - 建立Class的Instance
dim MyObject as New OOP
- MyObject是你所要建立的Instance
- New關鍵字,指定要建立的Class名稱
- 配置RAM空間給MyObject
- 建立一個OOP的Object(物件的實體)
- 將MyObject參考物件實體所在位置的RAM Address
- 建構式"參數"與"多重"建構式
- 無參數(參考範例1)
- 參數(參考範例2)
- 多重建構式(參考範例3)
在同一Class可新增多個建構式來處理不同Data Type(資料型別)的問題,例如一個處理Integer,一個處理Double,在你初始化時,依你傳入的參數型別來呼叫對應的建構式。
- 無參數(參考範例1)
- 屬性(Property)
屬性讓引用Class的程式碼於存取Class內部資料成員時,受到進一步的控管。一個設計良好的Class,變數通常被宣告為Private,被限定為只能在定義它的Class內部作存取,然後藉由使用屬性成員公開資料成員值。
- Me關鍵字(參考範例4)
Me讓我們用來區別是Class變數或區域變數,Me能讓你取得Class變數。
- 方法多載(參考範例5)
在同一Class中,你可以使用同一名稱為一個以上的方法命名,只要方法成員所接受的參數不同即可。
- 共用(靜態)成員(參考範例6)
共用成員以物件導向實作"全域變數",不需要產生Class Instance,即不需要透過New的程式(dim MyObject as New OOP
),即可直接引用。共用成員須使用Shared關鍵字宣告,一但宣告為共用成員,可直接透過點(.)運算子直接取用。共用成員並不會隨Object建立有不同的值,固因只有固定不隨物件Instance改變的資料成員,才考慮建立為共同成員。
範例1:無參數建構式
1 | Public Class OOP |
2 |
3 | Sub New () |
4 | 'Do Something ... |
5 | End Sub |
6 |
7 | End Class |
範例2:參數建構式
01 | Public Class OOP |
02 |
03 | Sub New () |
04 | 'Do Something ... |
05 | End Sub |
06 |
07 | '參數建構式 |
08 | Sub New ( ByVal name As String ) |
09 | 'Do Something ... |
10 | End Sub |
11 |
12 | End Class |
範例3:多重參數建構式
01 | Public Class OOP |
02 |
03 | Sub New () |
04 | 'Do Something ... |
05 | End Sub |
06 |
07 | '處理整理的建構式 |
08 | Sub New ( ByVal a As Integer , ByVal b As Integer ) |
09 | |
10 | End Sub |
11 | '處理浮點數的建構式 |
12 | Sub New ( ByVal a As Double , ByVal b As Double ) |
13 | |
14 | End Sub |
15 |
16 | End Class |
範例4:Me關鍵字
01 | Public Class OOP |
02 |
03 | Public Hour As Integer |
04 |
05 | ''' <summary> |
06 | ''' 在函式中會使用到Class變數Hour,但Class的Hour數變與函式參數Hour同名,所以必須使用Me關鍵字來需得Class變數Hour的值。 |
07 | ''' </summary> |
08 | ''' <param name="Hour">函式區域變數</param> |
09 | ''' <remarks></remarks> |
10 | Public Sub HourTrans( ByVal Hour As Integer ) |
11 | Me .Hour = Hour |
12 | 'Do Something ... |
13 | End Sub |
14 |
15 | End Class |
範例5:方法多載
01 | Public Class OOP |
02 |
03 | '處理整數加法 |
04 | Public Function Add( ByVal a As Integer , ByVal b As Integer ) As String |
05 | 'Do Integer Add |
06 | End Function |
07 |
08 | '處理浮點數加法 |
09 | Public Function Add( ByVal a As Double , ByVal b As Double ) As String |
10 | 'Do Double Add |
11 | End Function |
12 |
13 | End Class |
範例6:共用成員
1 | Public Class OOP |
2 |
3 | Public Shared dayhour As Integer = 24 |
4 | Public Shared Function HourTrans( ByVal hour As Integer ) As String |
5 | 'Do Something ... |
6 | End Function |
7 |
8 | End Class |
1 | Public Class _Default |
2 | Inherits System.Web.UI.Page |
3 |
4 | Protected Sub Page_Load( ByVal sender As Object , ByVal e As System.EventArgs) Handles Me .Load |
5 | Dim resultHour As String |
6 | '直接使用Class名稱(OOP)來引用方法 |
7 | resultHour = OOP.HourTrans(16) |
8 | End Sub |
9 | End Class |
你好:
回覆刪除最近才要學習vb,可以之前已經用Dos 寫程式幾拾年了,那是因為一直抗拒學習,現在因桌邊買不到了,定址受限,不得不開始學習,請你告訴我那裡可以找到介紹vb物件的書?例如有没有書在介紹MsgBox(),InputBox(),add(),...等等,我覺得有無限多的這種東西,如何找到他們?
1. 書局;
回覆刪除2. MSDN;
3. books, kingstone;
4. Internet (Blog ...)
我除了大學時是上課學習,畢業後都是自修,以上是我自修的資料來源。提供給你參考。