OOP Concepts in Python
Python là ngôn ngữ OOP. Dễ dàng tạo và dùng class, object.
Các khái niệm chính:
- Object
- Class
- Method
- Inheritance
- Polymorphism
- Data Abstraction
- Encapsulation
Object
Thực thể có state và behaviour. Vật lý hoặc logic: chuột, bàn phím, ghế, bàn, bút... Mọi thứ trong Python là object, hầu như đều có attribute và method.
Class
Tập hợp object. Thực thể logic có attribute và method cụ thể. Ví dụ: class Student chứa email, tên, tuổi, mã số...
Method
Function gắn với object. Trong Python, method không unique cho class instance. Bất kỳ object type nào cũng có method.
Inheritance
Object con thừa hưởng property và behavior của parent. Định nghĩa class mới với ít/thay đổi code. Derived/child class kế thừa từ base/parent class. Tái sử dụng code.
Polymorphism
Một task thực hiện nhiều cách. Ví dụ: class Animal, tất cả động vật "nói" nhưng khác nhau. "Nói" phụ thuộc vào animal cụ thể. Abstract "animal" không "nói", nhưng animal cụ thể implement "nói".
Encapsulation
Hạn chế truy cập method/biến. Code và data gói gọn trong single unit, tránh sửa đổi ngẫu nhiên.
Data Abstraction
Trừu tượng hóa dữ liệu và encapsulation đồng nghĩa (abstraction đạt được qua encapsulation). Ẩn internal detail, chỉ show functionality. Đặt tên cho thứ để tên nắm bắt ý tưởng cốt lõi.