การเขียนโปรแกรมเชิงวัตถุ คืออะไร
การเขียนโปรแกรมเชิงวัตถุ เป็นรูปแบบการเขียนโปรแกรมที่ใช้แนวคิดของออบเจ็ค ซึ่งในออบเจ็คนั้นจะประกอบไปด้วย 2 ส่วนด้วยกันคือ ตัวแปรซึ่งเป็นข้อมูลหรือกำหนดคุณลักษณะของออบเจ็ค และเมธอด เป็นฟังก์ชันการทำงานที่อ็อบเจ็คสามารถทำได้ ในการสร้างออบเจ็คนั้นจะอยู่ภายใต้การกำหนดของคลาส โดยคลาสคือการกำหนดว่าออบเจ็คจะมีสมาชิกอะไรบ้าง และกำหนดการทำงานของเมธอด ดังนั้นออบเจ็คจะสร้างจากคลาส เราเรียกออบเจ็คว่า instances ของคลาส
ภาษาต่างๆ เป็นจำนวนมากสนับสนุนการเขียนโปรแกรมเชิงวัตถุ เช่น Java C++ C# Python PHP Ruby และภาษาอื่นๆ ซึ่ง Java ถือว่าเป็นภาษาของออบเจ็คอย่างเต็มรูปแบบ การเขียนโปรแกรมเชิงวัตถุนั้นเป็นการพัฒนารูปแบบของการเขียนโปรแกรมไปอีกขั้นจากการเขียนโปรแกรมแบบเดิมที่เราเคยเขียนคือ Procedural programming
คุณสมบัติของ OOP
การเขียนโปรแกรมเชิงวัตถุ มีข้อดีและข้อได้เปรียบจากการเขียนโปรแกรมแบบเดิมมากมาย ซึ่งสิ่งที่สำคัญที่สุดของมันคือการนำโค้ดของโปรแกรมกลับมาใช้ใหม่ และคุณสมบัติอื่นๆ ดังนี้
- Code reuse: การนำโค้ดกลับมาใช้ใหม่
- Maintenance: ง่ายต่อการบำรุงรักษาและปรับปรุง
- Classes: คลาสที่สร้างขึ้นนั้น สามารถนำไปสร้างเป็นออบเจ็คได้ไม่จำกัด แต่ละออบเจ็คมีสมาชิกเป็นของมันเอง
- Inheritance: คลาสสามารถสืบทอดจากคลาสอื่นได้ ซึ่งเป็นการ reuse code และพัฒนาต่อเดิมความสามารถจากคลาสเดิมที่มีอยู่
- Polymorphism: คุณสมบัติของออบเจ็คที่หลากหลายรูปแบบ ซึ่งสามารถจัดการได้จาก Base คลาสของมัน
- Encapsulation: เป็นแนวคิดแบบนามธรรมที่ว่าคุณไม่จำเป็นต้องรู้ว่าเมธอดหรือในคลาสนั้นทำงานยังไง แต่มันสามารถทำงานได้สำเร็จและให้ผลลัพธ์แก่คุณได้
- Abstraction: คือการอธิบายการทำงานของคลาสและเมธอดในแบบนามธรรม เพื่อนำไปใช้สำหรับออบเจ็คที่มีการทำงานแตกต่างกัน เช่น เราบอกว่าสัตว์สามารถเคลื่อนที่ การเคลื่อนที่คือการบอกอย่างเป็นนามธรรม เพราะว่าสัตว์แต่ละตัวมีวิธีการเคลื่อนที่ที่แตกต่างกัน เช่น สุนัขจะเดิน นกจะบิน ส่วนเต่าจะคลาน เป็นต้น
คลาสและออบเจ็ค
ส่วนประกอบของการเขียนโปรแกรมเชิงวัตถุที่สำคัญคือ คลาสและออบเจ็ค ในตอนแรกเราต้องสร้างหรือประกาศคลาสขึ้นมา ซึ่งประกอบไปด้วยตัวแปร และเมธอดในการทำงาน หลังจากนั้นเราจะนำไปสร้างออบเจ็ค การสร้างคลาสก็เหมือนการออกแบบรูปแบบของวัตุอย่างหนึ่งที่เราจะสร้างขึ้นมา เช่น คุณจะสร้างรถขึ้นมาเราก็ต้องเขียนแบบ เราเรียกสิ่งนี้ว่าคลาส และเรานำไปสร้างรถ ซึ่งก็คือออบเจ็ค

ในตัวอย่างเป็นรูปที่แสดงให้เห็นถึงรายละเอียดของรถที่นำมาสร้างเป็นคลาส จะเห็นได้ว่าจะมี attribute เมธอดเพื่ออธิบายเกี่ยวกับรถ ซึ่งรถก็จะมีคุณสมบัติของมัน เช่น จำนวนเชื้อเพลิง ความเร็วสูงสุด และอื่น และส่วนของการทำงาน จะเป็นการเติมน้ำมัน การเพิ่มและลดความเร็ว การขับเคลื่อนรถออกไป และสตาร์ทหรือหยุดเครื่องยนต์ เป็นต้น ซึ่งสิ่งเหล่านี้จะถูกกำหนดไว้ในคลาส
แบบฝึกหัด
1. จงอธิบายความหมายของการเขียนโปรแกรมเชิงวัตถุ
2. ออบเจ็กต์(Object) คืออะไร
3. คลาส(Class) คืออะไร
4. เมธอด(Method) คืออะไร
อ้างอิง
MarcusCode, “การเขียนโปรแกรมเชิงวัตถุ”, http://marcuscode.com/lang/java/object-oriented-programming สืบค้นวันที่ 26 ก.ย. 60