接下來的幾篇都不會太大,因為物件導向本身是個思考的過程,所以小小一篇有利吸收,一次吸收一點點,慢慢了解物件導向的思考過程,進而加強整體程式設計的實力。
- 類別(Class)
Class有同類的意思。 - 物件(Object)
Object都是參考某個Class類別產生Instance(實例、實體),所以Class可視為Object的"樣板"或"藍圖"。 - 設計類別
一個類別裡包含四大元素:
- 資料成員、資料變數、欄位(Field)成員;
為Class中所定義各種Data Type變數。名稱很多種,簡單記成Class裡的"變數"就好了。 - 方法(函式、副程式);
資料成員用來記錄資料,但如果要行進資料處理或資料邏輯判斷,則要用方法。
- 副程式(Sub),執行後無回傳值。
- 函式(Function),執行後可將結果傳回(return)。
- 屬性;
用來存取Class資料成員的值。它提供外部程式存取Class內部資料成員的彈性,又可以在存取同時加入邏輯判斷。 - 建構子;
在Object建立時(初始化)執行一段程式。
- 資料成員、資料變數、欄位(Field)成員;
- 修飾元
- Public
共用成員,Class內外程式碼都可以存取。 - Private
私有成員,只有成員宣告範圍內的程式碼才能存取(預設)。
即這個Class.vb程式碼(此物件本身)內部才能存取。 - Protected
介於Public與Private之間,只有宣告範圍及繼承架構下的Class才能引用。
即這個Class.vb程式碼(此物件本身)內部及繼承此Class.vb物件的物件才能存取。
- Public
屬性範例
我們Class中放一個Private _birthday As Date,基本上是可以存放"任何時間",但Birthday是不可能發生在未來。01 | Public Class OOP |
02 |
03 | Private _birthday As Date |
04 | ''' <summary> |
05 | ''' 生日,但生日無法設定在未來。 |
06 | ''' </summary> |
07 | ''' <value></value> |
08 | ''' <returns>日期(生日)</returns> |
09 | ''' <remarks>設定(Set)時必須判斷是否小於現在(Now)</remarks> |
10 | Public Property Birthday() As Date |
11 | Get |
12 | Return _birthday |
13 | End Get |
14 | Set ( ByVal value As Date ) |
15 | If value <= Now Then |
16 | _birthday = value |
17 | Else |
18 | _birthday = Now. Date |
19 | End If |
20 | End Set |
21 | End Property |
22 |
23 | End Class |
01 | Public Class OOP |
02 |
03 | Private _birthday As Date |
04 | ''' <summary> |
05 | ''' 生日,但生日無法設定在未來。 |
06 | ''' </summary> |
07 | ''' <value></value> |
08 | ''' <returns>日期(生日)</returns> |
09 | ''' <remarks>設定(Set)時必須判斷是否小於現在(Now)</remarks> |
10 | Public Property Birthday() As Date |
11 | Get |
12 | Return _birthday |
13 | End Get |
14 | Set ( ByVal value As Date ) |
15 | If value <= Now Then |
16 | _birthday = value |
17 | Else |
18 | _birthday = Now. Date |
19 | End If |
20 | End Set |
21 | End Property |
22 |
23 | ''' <summary> |
24 | ''' 年紀會隨時間遞增,不固定,可從Birthday推得。 |
25 | ''' </summary> |
26 | ''' <value></value> |
27 | ''' <returns>String(年紀)</returns> |
28 | ''' <remarks></remarks> |
29 | Public ReadOnly Property Age() As String |
30 | Get |
31 | Return (Now.Year - _birthday.Year + 1).ToString() |
32 | End Get |
33 | End Property |
34 |
35 | End Class |
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。