อัปเดตล่าสุด Nov. 6, 2024
OOP (Object Oriented Programming) เป็นอีกหนึ่งหัวข้อที่ควรรู้ถ้าต้องการศึกษาการทำงานของภาษายอดนิยมเหล่านี้ เช่น Python, Java, JavaScript, etc เป็นต้น จะช่วยให้เราอ่านทำความเข้าใจกับโค้ดรวมไปถึงการเขียนหรือออกแบบโค้ดได้ดี มีประสิทธิภาพมากยิ่งขึ้น หรือแม้แต่ coding interview ก็มีการทดสอบความรู้ความเข้าใจส่วนนี้เช่นกัน
Object-Oriented Programming (OOP) คือ กระบวนการเขียนโปรแกรมเชิงวัตถุที่ยึดตามหลักแนวคิดของ "แม่แบบ (Class)" และ "วัตถุ (Object)" ให้เรามองว่า Class คือ พิมพ์เขียว (blueprint) ส่วน Object คือ การนำพิมพ์เขียวนี้ไปสืบทอดใช้งาน
ซึ่ง Python ก็ถือว่าเป็นหนึ่งในภาษายอดนิยมสำหรับการนำแนวคิด OOP ไปใช้งาน เนื้อหาในบทเรียนนี้จะครอบคลุมพื้นฐานของ OOP ใน Python ในเบื้องต้น
แนวคิดของคลาสจะแบ่งองค์ประกอบออกเป็น 3 ส่วนหลัก ๆ ดังต่อไปนี้
ตัวอย่างการสร้าง Class แงว
นี่คือตัวอย่างการสร้าง class ในไพธอน โดยชื่อคลาสจะถูกกำหนดด้วยตัวพิมพ์ใหญ่ (Capital Letter) เป็นตัวแรกของชื่อ
class Cat:def __init__(self, name, age):self.name = nameself.age = agedef display_name(self):print(self.name, "is my cat name")cat1 = Cat("SomSom", 5)cat2 = Cat("Salid Noi", 7)print(cat1.name) # Output: SomSomprint(cat2.age) # Output: 7cat2.display_name() # Output: Salid Noi is my cat name
จากตัวอย่างด้านบนก็คือการสร้างคลาสแบบเบื้องต้น รวมไปถึงการเรียกใช้งาน class
Cat
คือ ชื่อคลาส (ขึ้นต้นด้วยตัวพิมพ์ใหญ่)__init__()
คือ เมธอดพิเศษเอาไว้ใช้สำหรับเริ่มต้น (Initialize) คลาสdisplay_name()
คือ เมธอด ในคำสั่งนี้ก็ทำเพียงแค่แสดงผลคำว่า "... is my cat name"cat1
และ cat2
คือ ออบเจ็กต์ (Objects)cat1.display_name()
คือ การเรียกใช้เมธอดของออบเจ็กต์ cat1
ในภาษา Python นั้น __init__()
เป็นเมธอดพิเศษ (Special or Dunder Method) หรือที่เรียกว่าคอนสตรัคเตอร์ (Constructor) ก็ได้เช่นกัน ซึ่ง __init__()
จะถูกเรียกใช้โดยอัตโนมัติเมื่อมีการสร้างออบเจกต์ของคลาสขึ้นมา หรือเรียกได้ว่าจะเป็นส่วนของการเริ่มต้น (initialize) ของ class
เมธอด __init__()
ใช้พารามิเตอร์ self
ซึ่งเป็นการอ้างอิงถึงวัตถุที่กำลังสร้าง เพื่อให้สามารถเข้าถึงคุณสมบัติ (Attributes) และเมธอด (Methods) ของวัตถุ โดยพารามิเตอร์ self
ต้องเป็นพารามิเตอร์แรกในเมธอดที่กำหนดในคลาส ถึงแม้ว่าใน Python เราสามารถกำหนดพารามิเตอร์เป็นชื่ออะไรก็ได้ที่ไม่ใช่ self แต่สุดท้ายแล้วก็คือธรรมเนียมปฏิบัติ (convension) ของภาษาว่าควรต้องใช้ self
ถึงจะเหมาะสมที่สุด
class Cat:def __init__(self, name, age):self.name = nameself.age = age
จากตัวอย่างของคลาส Cat
ด้านบนจะเห็นว่าได้มีการประกาศพารามิเตอร์ 3 ตัว (รวม self
ด้วย) นั่นก็คือ self
, name
และ age
ครับ
เมธอด (method) คือฟังก์ชันที่อยู่ภายในคลาส โดยเมธอดจะเป็นตัวกำหนดการกระทำ (behavior) ของคลาส ถ้าสังเกตให้ดีจะเห็นว่า method ก็คือฟังก์ชัน ๆ หนึ่ง เพียงแต่ว่าเป็นฟังก์ชันที่อยู่ภายใต้คลาสนั่นเอง
จากตัวอย่างโค้ดด้านบนสุด จะเห็นว่าเราสามารถเข้าถึง method ของ class ได้ดังต่อไปนี้
cat2.display_name() # Output: Salid Noi is my cat name
cat2
คือออปเจคท์displya_name()
คือเมธอดคอร์สอบรม เรียนทำเว็บ ด้วย Django สุดยอด web framework อันดับ 1 ที่ได้รับ…
คอร์สเรียน Full Stack Developer 2024 ด้วยเฟรมเวิร์คยอดนิยมในการพัฒนา A…