五月 18
在物件導向中,類別(Class)是最基本的課程,有類別(Class),才能產生物件(Object),類別裡包含有:變數(Var)、屬性(Property)、方法(Method),我知道這些名詞都很抽象,我慢慢解釋給你聽。
延續上一篇 物件導向無痛入門(1) 的概念,請你把物件想像成公司裡的員工,而每一個員工可以做很多事情,這就是物件;身為人事部經理的你,今天老總打電話給你,說他要應徵一個秘書,然後他開出了應徵的條件,叫你3天內馬上找到人,老總的條件如下:
- 18~27歲的正妹
- 未婚
- 36C
- 170CM
- 配合度高
這裡所說的應徵條件,你就可以把他看成 類別(Class),然後用來產生 正妹秘書(物件 Object),於似乎你就上網 POST 了應徵的條件,果然不出3天就有人來應徵了,你就照著老總的條件來面試,當然面試的時候我們必須要驗證正妹的資料是否正確,而驗證正妹的規則就是可以看成 屬性(Property),設規則就是要保證產生的物件合乎標準!
讓我們把它換成程式表示吧!
先寫個秘書類別吧!
VB.NET:
-
Public Class Secretary
-
'設定變數
-
Private _name As String
-
Private _age As Int32
-
Private _ISmarry As Boolean
-
Private _ISc As Boolean
-
Private _height As Int32
-
Private _ISmatch As Boolean
-
Private _score As Int32 = 0
-
-
'建構子
-
Sub New(ByVal name As String, ByVal age As Int32, _
-
ByVal ISmarry As Boolean, ByVal ISc As Boolean, _
-
ByVal height As Int32, ByVal ISmatch As Boolean)
-
-
Me.name = name
-
Me.age = age
-
Me.ISmarry = ISmarry
-
Me.ISc = ISc
-
Me.height = height
-
Me.ISmatch = ISmatch
-
End Sub
-
-
'設定正妹名字
-
Property name() As String
-
Get
-
Return Me._name
-
End Get
-
Set(ByVal value As String)
-
Me._name = value
-
End Set
-
End Property
-
-
'驗證年齡
-
Property age() As Int32
-
Get
-
Return Me._age
-
End Get
-
Set(ByVal value As Int32)
-
If value> 18 And value <27 Then
-
value = Me._age
-
Me._score += 1
-
Else
-
value = Me._age
-
End If
-
End Set
-
End Property
-
-
'是否結婚
-
Property ISmarry() As Boolean
-
Get
-
Return Me._age
-
End Get
-
Set(ByVal value As Boolean)
-
If value = False Then
-
value = Me._ISmarry
-
Me._score += 1
-
Else
-
value = Me._ISmarry
-
End If
-
End Set
-
End Property
-
-
'是否大於C
-
Property ISc() As Boolean
-
Get
-
Return Me._ISc
-
End Get
-
Set(ByVal value As Boolean)
-
If value = True Then
-
value = Me._ISc
-
Me._score += 1
-
Else
-
value = Me._ISc
-
End If
-
End Set
-
End Property
-
-
'驗證身高
-
Property height() As Int32
-
Get
-
Return Me._height
-
End Get
-
Set(ByVal value As Int32)
-
If value> 170 Then
-
value = Me._height
-
Me._score += 1
-
Else
-
value = Me._height
-
End If
-
End Set
-
End Property
-
-
'配合高
-
Property ISmatch() As Boolean
-
Get
-
Return Me._ISmatch
-
End Get
-
Set(ByVal value As Boolean)
-
If value = True Then
-
value = Me._ISmatch
-
Me._score += 1
-
Else
-
value = Me._ISmatch
-
End If
-
End Set
-
End Property
-
-
'是否率取
-
Sub matriculate()
-
If Me._score>= 5 Then
-
MsgBox(Me._name & vbCrLf & _
-
"恭喜你錄取了" & vbCrLf & _
-
"總分:" & Me._score)
-
-
Else
-
MsgBox(Me._name & vbCrLf & _
-
"抱歉你沒錄取" & vbCrLf & _
-
"總分:" & Me._score)
-
End If
-
End Sub
-
End Class
在主程式裡宣告三個應徵者
VB.NET:
-
Public Class Form1
-
-
Private Sub Form1_Load(ByVal sender As System.Object, _
-
ByVal e As System.EventArgs) Handles MyBase.Load
-
-
Dim girl1 As New Secretary("張佩君", 20, False, True, 172, True)
-
girl1.matriculate()
-
-
Dim girl2 As New Secretary("張秀慧", 28, True, True, 165, True)
-
girl2.matriculate()
-
-
Dim girl3 As New Secretary("王淑芬", 25, False, False, 174, True)
-
girl3.matriculate()
-
-
End Sub
-
End Class

本篇文章引用網址:
|
其他隨機文章: |




九月 30th, 2008 at 12:29 下午
路過看看,
有趣的解釋耶!
上了物件導向的課仍然不知道的東西,
您的比喻有比較清楚!
[回應]
一月 2nd, 2009 at 6:39 下午
棒!一直搞不懂get set,看了你的例子立即明白了!
[回應]