OOP คืออะไร? การเขียนโปรแกรมแบบ OOP ทำงานยังไง
ในโลกของการเขียนโปรแกรม Object-Oriented Programming (OOP) ได้กลายเป็นแบบอย่างอันทรงพลังที่ช่วยให้นักพัฒนาสามารถสร้างซอฟต์แวร์ที่มีประสิทธิภาพสูงได้ด้วยการจัดระเบียบโค้ดให้เป็นวัตถุ (Object) และต้นแบบ (Class) ในบทความนี้เรามาทำความเข้าใจกันว่า OOP คืออะไร และมีหลักการทำงานยังไง ไปดูกัน
Contents
OOP คืออะไร?
Object-Oriented Programming หรือ OOP คือ การเขียนโปรแกรมเชิงวัตถุ ซึ่งเป็นแบบจำลองในการเขียนโปรแกรมที่เน้นมองสิ่งต่าง ๆ ในระบบให้เป็น Object การทำแบบนี้จะช่วยให้นักพัฒนาสามารถจัดระเบียบโค้ดและเข้าใจการทำงานในภาพรวมมากขึ้น และยังมีอีกส่วนที่สำคัญนั่นก็คือ Class ที่ทำหน้าที่เป็นต้นแบบสำหรับการสร้าง Object โดย Class จะกำหนดคุณสมบัติ (Attributes) และพฤติกรรม (Methods) ที่ Object ของ Class นั้นควรจะมี
ต้องบอกก่อนว่า คุณสมบัติ (Attributes) จะแสดงถึงสถานะและคุณลักษณะของ Object ส่วนพฤติกรรม (Methods) จะมีหน้าที่ในการกำหนดการกระทำของ Object ที่สามารถทำได้ หลายคนอาจจะเริ่มงงนิดหน่อยงั้นเรามายกตัวอย่างง่าย ๆ เช่น สมมติเรามีหมา 1 ตัว หมาตัวนี้จะมีคุณสมบัติ (Attributes) คร่าว ๆ คือ สี อารมณ์ พลังงาน น้ำหนักและส่วนสูง ส่วนพฤติกรรม (Methods) ก็จะมี การเห่า นอน วิ่ง พูดและนั่งได้ เป็นต้น
หลักการทำงานของ OOP มีอะไรบ้าง?
1. Encapsulation
การซ่อนข้อมูลถือเป็นหลักการพื้นฐานของ OOP โดยจะทำการซ่อนข้อมูลในส่วนของ Class อย่างคุณสมบัติ (Attributes) และพฤติกรรม (Methods) ที่เกี่ยวข้องภายใน Object ให้เป็นแบบ Private ไว้เพื่อป้องกันการเข้าถึงจากภายนอกได้และกำหนดให้สามารถเข้าถึงได้เฉพาะในส่วนที่เรากำหนดให้เป็น Public เท่านั้น
- ยกตัวอย่างเช่น หมาตัวเดิมของเรา (Object) จะมีข้อมูลบางส่วนที่ถูกเก็บไว้เป็นความลับจากภายนอก เช่น พลังงาน (Private Attributes) อารมณ์ (Private Attributes) การเห่า (Private Methods) การนอน (Private Methods) ซึ่งจะมีแค่ตัวมันเองที่รู้ข้อมูลนี้ขอเรียกส่วนนี้ว่าเป็น Private และในส่วนที่เราสามารถเข้าถึงได้หรือสามารถกระทำกับหมาตัวนี้ได้ก็คือ การฝึกหมา (Public Methods) และการเล่นกับหมา (Public Methods) โดยเราจะเรียกส่วนนี้ว่าเป็น Public การกระทำเหล่านี้ส่งผลให้อาจเกิดการเปลี่ยนแปลงภายในของข้อมูลหมา (Private Attributes) ได้ซึ่งจะจัดการหรือเกิดการเปลี่ยนแปลงอะไรเราก็ไม่จำเป็นต้องรู้
2. Abstraction
Abstraction ต่อยอดมาจาก Encapsulation คือการเปิดเผย Object เฉพาะส่วนที่จำเป็นต่อการใช้งานโดยเราไม่จำเป็นต้องรู้การทำงานหรือรายละเอียดภายในของมัน
- ยกตัวอย่างเช่น เวลาเราเล่นมือถือการกดเข้าแอปพลิเคชัน ถ่ายรูป ฟังเพลงและอื่น ๆ อีกมากมาย เราสามารถทำได้โดยไม่จำเป็นจะต้องรู้ว่าเบื้องหลังพวกมันทำงานยังไงเรามีหน้าที่ใช้งานมันแค่นั้นก็พอ
3. Inheritance
การสืบทอดคุณสมบัติใน OOP นั้นช่วยให้เราสามารถสร้าง Class ใหม่ได้โดยเอาคุณสมบัติ (Attributes) และพฤติกรรม (Methods) จาก Class ที่มีอยู่แล้วมาสร้างและเพิ่มคุณสมบัติ (Attributes) กับพฤติกรรม (Methods) เฉพาะตัวเข้าไปเพิ่มได้
- ยกตัวอย่างเช่น เราตั้งชื่อ Class ตัวหลักว่า Animal โดยมีคุณสมบัติ (Attributes) คือ สีและน้ำหนัก ส่วนพฤติกรรม (Methods) คือ นอนและวิ่ง จากนั้นเราจะสร้าง Class ย่อยที่มีชื่อว่า หมาและแมว ซึ่งทั้งสองคลาสย่อยนี้จะมีลักษณะที่สืบทอดมาจาก Class หลักคือ การนอน การวิ่ง สีและน้ำหนัก โดยอาจจะมีคุณสมบัติ (Attributes) และพฤติกรรม (Methods) เพิ่มเติมขึ้นมา เช่น เขี้ยว เล็บ ร่าเริง อ้อน เป็นต้น
4. Polymorphism
ช่วยให้สามารถใช้ Object ที่มีคุณสมบัติ (Attributes) และพฤติกรรม (Methods) ที่แตกต่างกันได้ใน Class เดียวกันหรือก็คือตัว Class หลักจะกำหนดคุณสมบัติ (Attributes) และพฤติกรรม (Methods) เอาไว้และให้ Class ย่อยต่าง ๆ ไประบุรายละเอียดต่าง ๆ ของคุณสมบัติ (Attributes) และพฤติกรรม (Methods) เอง
- ยกตัวอย่างเช่น Class ตัวหลัก Animal เรามีพฤติกรรม (Methods) คือการวิ่งและให้ Class ย่อยอย่างหมาและแมวไปสร้างรายละเอียดการวิ่งกันเอง โดยหมาและแมวจะวิ่งได้เหมือนกันแต่ท่าทางการวิ่งจะแตกต่างกันไป
สรุป
รู้กันไปแล้วว่า OOP คืออะไร สรุปแล้ว โปรแกรมเชิงวัตถุ (Object Oriented Programming – OOP) นั้นมีความได้เปรียบทางด้านการพัฒนาซอฟต์แวร์อย่างมาก ด้วยประโยชน์ที่หลากหลายเช่นการใช้โค้ดได้ซ้ำซ้อน การแยกโค้ดเป็นส่วนย่อย การดูแลที่ง่ายและยืดหยุ่นรวมถึงช่วยให้นักพัฒนาสามารถเขียนโค้ดที่ได้เรียบร้อยและมีประสิทธิภาพที่สูงขึ้นอีกด้วย
💖 สำหรับใครที่ต้องการศึกษาเพิ่มเติมเกี่ยวกับการพัฒนาโค้ด ทาง ERT ศูนย์ฝึกอบรมของเราก็มีคอร์สมามากมายมาแนะนำให้เพื่อน ๆ เลือกกัน ซึ่งสามารถเลือกเรียนได้ทั้งแบบ Onsite และ Classroom มีทั้งแบบ Private และ Public ด้วยนะ สนใจสามารถคลิกลิงก์เพื่อดูรายละเอียดคอร์สเรียนได้เลย! 👉 https://www.ert.co.th/it-training/
Ref: techtarget
💬🙋♂️ สอบถามเพิ่มเติมสามารถติดต่อมาได้ที่
☎ Tel: 02-718-1599
✉ Email: info@ert.co.th
📱 Line: https://lin.ee/wtyQVtl
Wow, amazing blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your web site is magnificent, as well as the content!
Hey! I just wanted to ask if you ever have any issues with hackers? My last blog (wordpress) was hacked and I ended up losing several weeks of hard work due to no data backup. Do you have any methods to protect against hackers?
Thank you for the auspicious writeup. It in fact was a amusement account it. Look advanced to far added agreeable from you! However, how can we communicate?