แนวคิด OOP ใน Python
Python เป็นภาษา Object-Oriented Programming สร้างและใช้ Classes และ Objects ได้ง่าย
แนวคิดหลักของ OOP ใน Python:
- Object (วัตถุ)
- Class (คลาส)
- Method (เมธอด)
- Inheritance (การสืบทอด)
- Polymorphism (พอลิมอร์ฟิซึม)
- Data Abstraction (การสร้างนามธรรมข้อมูล)
- Encapsulation (การห่อหุ้ม)
Object (วัตถุ)
Entity ที่มี State และ Behavior อาจเป็น Physical หรือ Logical เช่น Mouse, Keyboard, Chair, Table, Pen
ใน Python ทุกอย่างเป็น Object และเกือบทุกอย่างมี Attributes และ Methods
Class (คลาส)
Collection ของ Objects เป็น Logical Entity ที่มี Attributes และ Methods เฉพาะ เช่น Student Class มี Email, Name, Age, Roll Number
Method (เมธอด)
Function ที่ผูกกับ Object ใน Python Method ไม่ได้เฉพาะ Class Instances ทุก Object Type สามารถมี Methods ได้
Inheritance (การสืบทอด)
Object หนึ่งได้ Properties และ Behaviors ทั้งหมดจาก Parent Object สร้าง Class ใหม่ด้วยการเปลี่ยนแปลงน้อยหรือไม่มีจาก Class เดิม Class ใหม่ = Derived/Child Class ต้นทาง = Base/Parent Class ให้ Reusability
Polymorphism (พอลิมอร์ฟิซึม)
งานหนึ่งทำได้หลายวิธี เช่น Class Animal ทุกตัวพูดได้ แต่วิธีต่างกัน "Talk" ขึ้นอยู่กับสัตว์ Animal แบบ Abstract ไม่ "Talk" จริง แต่สัตว์เฉพาะ Implement "Talk" จริง
Encapsulation (การห่อหุ้ม)
จำกัดการเข้าถึง Methods และ Variables โค้ดและข้อมูลห่ออยู่ในหน่วยเดียว ป้องกันการแก้ไขโดยไม่ได้ตั้งใจ
Data Abstraction (การสร้างนามธรรมข้อมูล)
Data Abstraction และ Encapsulation สัมพันธ์กันมาก (Achieved through Encapsulation) ซ่อนรายละเอียดภายใน แสดงเฉพาะ Functionality การสร้างนามธรรม = ตั้งชื่อให้สิ่งต่างๆ จับใจความพื้นฐานของ Function/Program