Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

พื้นฐาน OOP ใน Python คืออะไร

แนวคิด OOP ใน Python

Python เป็นภาษาโปรแกรมมิ่งเชิงวัตถุ (Object-Oriented Programming) สามารถสร้างและใช้งานคลาสและออบเจ็กต์ได้อย่างง่ายดาย

แนวคิดหลักของ OOP ใน Python มีดังนี้:

  • วัตถุ (Object)
  • คลาส (Class)
  • เมธอด (Method)
  • การสืบทอด (Inheritance)
  • พอลิมอร์ฟิซึม (Polymorphism)
  • การสร้างนามธรรมข้อมูล (Data Abstraction)
  • การห่อหุ้ม (Encapsulation)

วัตถุ (Object)

วัตถุเป็นเอนทิตีที่มีสถานะ (state) และพฤติกรรม (behavior) อาจเป็นสิ่งจริงหรือสิ่งนามธรรม เช่น เมาส์ คีย์บอร์ด เก้าอี้ โต๊ะ ปากกา เป็นต้น

ใน Python ทุกอย่างเป็นออบเจ็กต์ และเกือบทุกอย่างมีแอตทริบิวต์และเมธอด

คลาส (Class)

คลาสคือการรวบรวมวัตถุที่มีลักษณะคล้ายกัน เป็นเอนทิตีเชิงตรรกะที่มีแอตทริบิวต์และเมธอดเฉพาะ เช่น คลาสนักศึกษาอาจมีแอตทริบิวต์อีเมล ชื่อ อายุ เลขประจำตัว เป็นต้น

เมธอด (Method)

เมธอดคือฟังก์ชันที่เชื่อมโยงกับออบเจ็กต์ ใน Python เมธอดไม่ได้จำกัดเฉพาะอินสแตนซ์ของคลาส ทุกประเภทของออบเจ็กต์สามารถมีเมธอดได้

การสืบทอด (Inheritance)

การสืบทอดทำให้ออบเจ็กต์หนึ่งได้รับคุณสมบัติและพฤติกรรมทั้งหมดจากออบเจ็กต์ผู้มา ก่อน (Parent) ด้วยการสืบทอด เราสามารถกำหนดคลาสใหม่ได้โดยเปลี่ยนแปลงเพียงเล็กน้อยหรือไม่เปลี่ยนแปลงจากคลาสเดิม คลาสใหม่เรียกว่า Derived Class หรือ Child Class ส่วนคลาสต้นทางเรียกว่า Base Class หรือ Parent Class ซึ่งช่วยให้โค้ดสามารถนำกลับมาใช้ซ้ำได้

พอลิมอร์ฟิซึม (Polymorphism)

พอลิมอร์ฟิซึมหมายถึงการที่งานหนึ่งสามารถทำได้หลายวิธี ตัวอย่าง: มีคลาส Animal และสัตว์ทุกตัวพูดได้ แต่วิธีการพูดต่างกัน การ "พูด" ขึ้นอยู่กับสัตว์แต่ละชนิด คลาส Animal แบบนามธรรมไม่ได้ "พูด" จริง แต่สัตว์เฉพาะตัวมีการนำไปใช้งานจริงของการกระทำ "พูด"

การห่อหุ้ม (Encapsulation)

การห่อหุ้มใช้เพื่อจำกัดการเข้าถึงเมธอดและตัวแปร โค้ดและข้อมูลถูกรวมอยู่ในหน่วยเดียว เพื่อป้องกันการแก้ไขโดยไม่ได้ตั้งใจ

การสร้างนามธรรมข้อมูล (Data Abstraction)

การสร้างนามธรรมข้อมูลและการห่อหุ้มเกี่ยวข้องกันมาก เพราะการสร้างนามธรรมข้อมูลทำได้ผ่านการห่อหุ้ม

การสร้างนามธรรมใช้เพื่อซ่อนรายละเอียดภายในและแสดงเฉพาะฟังก์ชันการทำงาน การสร้างนามธรรมหมายถึงการตั้งชื่อให้สิ่งต่างๆ เพื่อให้ชื่อนั้นจับได้ใจความพื้นฐานของฟังก์ชันหรือโปรแกรมทั้งหมด