การเขียนโปรแกรมเชิงวัตถุ

ในบทก่อนหน้า คุณได้เรียนรู้พื้นฐานการเขียนโปรแกรมของภาษา Visual Basic ทั้งไปหมดแล้ว ในความเป็นจริง นั่นเพียงพอที่คุณจะสามารถนำไปต่อยอดและสร้างโปรแกรมขึ้นมา หลังจากบทนี้ไป คุณจะได้เรียนรู้การเขียนโปรแกรมเชิงวัตถุในภาษา Visual Basic ซึ่งถือว่าเป็นเนื้อหาขั้นสูงในการเขียนโปรแกรม และอย่างไรก็ตามมันจำเป็นสำหรับการเขียนโปรแกรมที่โปรแกรมเมอร์ทุกคนต้องทราบหลักการของมัน

การเขียนโปรแกรมเชิงวัตถุภาษา Visual Basic

การเขียนโปรแกรมเชิงวัตถุ หรือ Object-oriented programming (OOP) นั้นเป็นรูปแบบการเขียนโปรแกรมในแนวคิดของออบเจ็ค ซึ่งจะประกอบไปด้วยส่วนที่เป็นข้อมูล (fields) และการกระทำเมธอด (methods) โดยการออกแบบสำหรับการเขียนโปรแกรมเชิงวัตถุนั้น ออบเจ็คแต่ละอ็อบเจ็คจะทำงานและมีปฏิสัมพันธ์กันผ่านเมธอด ออบเจ็คนั้นสร้างมากจากคลาส นั่นหมายความว่าออบเจ็คเป็นตัวแปรของคลาส

ในภาษา Visual Basic ล่าสุดนั้นคือ Visual Basic .NET 2015 ซึ่งสนับสนุนการเขียนโปรแกรมเชิงวัตถุอย่างสมบูรณ์ เหมือนภาษาอื่นๆ เช่น ภาษา Java ภาษา C# หรือ ภาษา C++ เป็นต้น ภาษาเหล่านี้เป็นภาษาระดับสูงและภาษา Visual Basic ก็เช่นกัน ดังนั้นการเขียนโปรแกรมเชิงวัตถุจึงเป็นแนวคิดที่ออกแบบมาในสภาพแวดล้อมของการเขียนโปรแกรมในโลกแห่งความจริง ซึ่งมองทุกอย่างเป็นเหมือนออบเจ็ค ซึ่งมีคุณสมบัติและการกระทำ

คุณสมบัติของการเขียนโปรแกรมแบบ OOP

เนื่องจากการเขียนโปรแกรมเชิงวัตถุนั้นถูกออกแบบมาเพื่อปรับปรุงรูปแบบการพัฒนาจากแบบเดิม ที่แต่ก่อนเรียกว่าการเขียนโปรแกรมแบบลำดับขั้นตอน (procedural programming) นี่ทำให้เกิดเป็นการเขียนโปรแกรมแบบขึ้นกับเหตุการณ์แทน (event-driven programming) โดยโปรแกรมจะทำงานเป็นอิสระต่อกันขึ้นกับสิ่งที่เกิดขึ้นกับออบเจ็คนั้น และนี่เป็นคุณสมบัติต่างๆ ของการเขียนโปรแกรมเชิงวัตถุ

  • Inheritance คือการสืบทอดความสามารถจากคลาสหนึ่งไปยังอีกคลาสหนึ่ง
  • Polymorphism คือคุณสมบัติของการมีได้หลายรูปแบบของออบเจ็ค
  • Interfaces คือการกำหนดหน้าที่การทำงานให้กับออบเจ็คหรือเรียกกันว่าส่วนติดต่อระหว่างออบเจ็ค ซึ่งจะแตกต่างกันออกไปสำหรับออบเจ็คแต่ละประเภท
  • Encapsulation คือการซ่อนข้อมูลของออบเจ็คจากโลกภายนอก (data hiding) และกำหนดขอบเขตในการเข้าถึงข้อมูลของออบเจ็ค
  • Operator Overloading คือคุณสมบัติในการเปลี่ยนแปลงการทำงานของ operator ให้ทำงานกับออบเจ็คได้ตรงตามที่ต้องการ

ซึ่งคุณจะได้เรียนในบทต่อไปของบทเรียนภาษา Visual Basic นี้

ตัวอย่างแนวคิดของ OOP

ต่อไปมาดูตัวอย่างแนวคิดของการเขียนโปรแกรมเชิงวัตถุ เราจะยกตัวอย่างโดยการใช้รถเป็นออบเจ็ค ยกตัวอย่างเช่น รถจะมีคุณสมบัติ เช่น ชื่อของรถ สี จำนวนเชื้อเพลิง และมีการทำงานคือ วิ่ง เติมเชื่อเพลง หรือการดูสี ดังนั้นเรานำมาจำแนกสำหรับนำไปสร้างคลาส จะได้ข้อมูลดังนี้

  • Fields: ชื่อของรถ สี และจำนวนเชื้อเพลิง
  • Methods: การวิ่ง การเติมเชื้อเพลิง การดูสีของมัน

หลังจากที่เราได้แยกแยะสมาชิกแต่ละแบบ เราจะสามารถเขียนไดอะแกรมของคลาส Car ได้ดังนี้

จากรูปภาพดังกล่าวเป็น UML diagram ที่สร้างโดยเครื่องมือในโปรแกรม Visual Studio เพื่อดูองค์ประกอบของคลาส และนี่เป็นโค้ดของจากคลาสจาก diagram นี้

Public Class Car

Dim name As String
Dim color As String
Dim fuel As Double

Sub Run()
' Code to run the car
fuel = fuel - 1
End Sub

Sub AddFuel(ByVal n As Double)
fuel = fuel + n
End Sub

Function GetColor() As String
Return color
End Function

End Class

มันเป็นคลาสที่ชื่อว่า Car ซึ่งคลาสก็คือเทมแพลตที่เราจะสามารภนำไปสร้างออบเจ็คได้ไม่จำกัด โดยออบเจ็คจะมีตัวแปรและการกระทำที่เหมือนกัน แต่สิ่งที่แตกต่างกันคือค่าภายใน เช่น เราสร้างรถที่มีสีแดง รถที่มีสีเขียว หรือสีนำเงิน รถทั้งสามคันนี้คือ 3 ออบเจ็คที่สร้างจากคลาส Car มันจะมีการกระทำของเมธอดที่เหมือนกันคือการวิ่ง การเติมเชื้อเพลง และการดูสีของมัน

ในบทนี้ เราได้แนะนำเกี่ยวให้คุณรู้จักแนวคิดของการเขียนโปรแกรมเชิงวัตถุ ที่จะเป็นจุดเริ่มต้นของบทต่อๆ ไปในบทเรียนภาษา Visual Basic นี้


บทความเกี่ยวกับ การเขียนโปรแกรมเชิงวัตถุ

การเขียนโปรแกรมเชิงวัตถุ ในภาษา Java

ในบทนี้ เราจะแนะนำให้คุณรู้จักกับการเขียนโปรแกรมเชิงวัตถุ (Object-oriented programming, OOP) ในภาษา Java ซึ่งเป็นคุณสมบัติหลักที่สำคัญของภาษา การเขียนโปรแกรมเชิ...