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

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

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

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

ภาษาต่างๆ เป็นจำนวนมากสนับสนุนการเขียนโปรแกรมเชิงวัตถุ เช่น Java C++C# Python PHP Ruby และภาษาอื่นๆ ซึ่ง Java ถือว่าเป็นภาษาของออบเจ็คอย่างเต็มรูปแบบ การเขียนโปรแกรมเชิงวัตถุนั้นเป็นการพัฒนารูปแบบของการเขียนโปรแกรมไปอีกขั้นจากการเขียนโปรแกรมแบบเดิมที่เราเคยเขียนคือ Procedural programming

คุณสมบัติของ OOP

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

  • Code reuse: การนำโค้ดกลับมาใช้ใหม่ ได้อย่างมีประสิทธิภาพ
  • Maintenance: ง่ายต่อการบำรุงรักษาและปรับปรุง แต่ละคลาสจะมีขอบเขตการทำงานและเมธอดของมันเอง
  • Classes: คลาสที่สร้างขึ้นนั้น สามารถนำไปสร้างเป็นออบเจ็คได้ไม่จำกัด และแต่ละออบเจ็คมีสมาชิกเป็นของมันเอง
  • Inheritance: คุณสมบัติการสืบทอด คลาสสามารถสืบทอดจากคลาสอื่นได้ ซึ่งเป็นการ reuse code และพัฒนาต่อเดิมความสามารถจากคลาสเดิมที่มีอยู่
  • Polymorphism: คุณสมบัติของออบเจ็คที่หลากหลายรูปแบบ ซึ่งสามารถจัดการได้จาก Base คลาสของมัน
  • Encapsulation: เป็นคุณสมบัติการห่อหุ้ม เป็นแนวคิดแบบนามธรรมที่ว่าคุณไม่จำเป็นต้องรู้ว่าเมธอดหรือในคลาสนั้นทำงานยังไง แต่มันสามารถทำงานได้สำเร็จและให้ผลลัพธ์แก่คุณได้
  • Abstraction: คือการอธิบายการทำงานของคลาสและเมธอดในแบบนามธรรม เพื่อนำไปใช้สำหรับออบเจ็คที่มีการทำงานแตกต่างกัน เช่น เราบอกว่าสัตว์สามารถเคลื่อนที่ การเคลื่อนที่คือการบอกอย่างเป็นนามธรรม เพราะวา่สัตว์แต่ละตัวมีวิธีการเคลื่อนที่ที่แตกต่างกัน เช่น สุนัขจะเดิน นกจะบิน ส่วนเต่าจะคลาน เป็นต้น

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

คลาสและออบเจ็ค

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

ไดอะแกรมของรถ ในมุมมองของ OOP

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

ในบทต่อไป คุณจะได้เรียนรู้เกี่ยวกับการสร้างคลาสในภาษา Java และนำคลาสไปสร้างออบเจ็ค


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

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

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