Object Orientation คืออะไร
Class กับ Object คลาสกับ
object เป็นสองสิ่งที่มีความเกี่ยวข้องกันโดยตรง คลาสคือโค้ดที่เราเขียนขึ้นเพื่อทำหน้าที่เป็นพิมพ์เขียวของ
object การสร้าง object จากคลาสเรียกว่าการทำ instantiation
การสร้าง object จากคลาส เทียบได้กับการทำขนมครกสิงคโปร์
เตาขนมจะมีหลุมหลายหลุม แต่ละหลุมมีลวดลายไม่เหมือนกัน
ขนมครกที่ได้จากแต่ละหลุมจึงมีรูปร่างต่างๆ กัน คลาสคือหลุมหนึ่งหลุม
ขนมครกที่ได้คือ instance ของคลาส หรือ object
เราเรียก
object หนึ่ง object ว่าหนึ่ง instance เราสามารถสร้าง
object ได้หลายๆ instance จากคลาสเพียงคลาสเดียว จากตัวอย่างขนมครกสิงคโปร์
ในวันหนึ่งๆ แม่ค้าจะทำขนมครกได้เป็นจำนวนมากจากหลุมแต่ละหลุม
ส่วนในภาษา C# หากเราสร้างคลาสหนึ่งคลาส ยกตัวอย่างเช่น
เป็นคลาสเพื่อนิยาม node หลังจากนั้นเราอาจเขียนโปรแกรมสร้าง
binary tree ซึ่งขณะทำงานมันอาจจะสร้าง object จากคลาส
node ได้หลายล้าน instance ภายในหนึ่งวินาที
การสร้าง Class ใน VB.NET
รูปแบบ
Class
ClassName
'
Data Member
'
Method Menber
End
Class
ต.ย.
การสร้าง Class dog
Class
Dog
End
Class
ต.ย.
การสร้าง Class Car ( คลาสรถยนต์ )
Public
Class Car
Public
Color as String
Private
Speed as int16
Public
GearPosition as String
Public
FuelLevel as Int16
Public
Sub accerelate(Byval Diffspeed as Int16)
Speed
+=Diffspeed
End
Sub
End
Class
ต.ย.
การสร้าง Class Human ใน VB.NET
Public Class Human
Public
Name As String
Private
Age As Int16
Public
Gender As String
Public
Tall As Int16
Public
weight As Int16
Public
Property sgAge() As Int16
Get
Return
Age
End
Get
Set(ByVal
a As Int16)
Age
+= a
End
Set
End
Property
End
Class
การสร้าง Object จาก Class ใน VB.NET
การสร้าง
Object หรือ Instance จาก Class ในภาษา VB.NET จะใช้ key
word คำว่า New โดยมีรูปแบบดังต่อไปนี้
รูปแบบ
1
Dim
objName as ClassName
objName
= New ClassName
รูปแบบ
2
Dim
objName as New ClassName
ต.ย. การใช้งาน Class และ Object
Public
Class Creature
Public
appetite As String
Public
nose As String
Public
teeth As Int16
Protected
soul As String
Protected
blood As String
Sub
arrive()
MsgBox("arrive")
End
Sub
Sub
meet()
MsgBox("meeting")
End
Sub
End
Class
Public
Class Red_riding_hood
Inherits
Creature
Dim
Basket As Int16
Dim
Coat As Int16
Sub
newblood(ByVal n As String)
blood
= n
End
Sub
Sub
showblood()
MsgBox(blood)
End
Sub
Sub
LeaveHome()
MsgBox("Leave
Home")
End
Sub
Sub
RunAway()
MsgBox("RunAway")
End
Sub
End
Class
Public
Class Wolf
Sub
die()
MsgBox("dieing")
End
Sub
Sub
eat()
MsgBox("eating")
End
Sub
End
Class
'ดับเบิ้ลคลิกบนฟอร์ม
จะได้เหตุการณ์ฟอร์มโหลด Form_Load() แล้วเขียนคำสั่งดังนี้
Private Sub Form1_Load(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Dim
z As New Red_riding_hood
z.appetite
= "หิว"
z.RunAway()
z.arrive()
z.newblood("O")
z.showblood()
End Sub
|