Nội dung chính
- 1 (Bài 9): Lập trình hướng đối tượng
- 2 Tổng quan về OOP trong Python
- 3 Class và Object trong Python
- 4 Thuộc tính & Phương thức
- 5 Hàm khởi tạo (Constructor) – __init__
- 6 Phương thức trong class
- 7 Ví dụ lớn: Quản lý sản phẩm (Product)
- 8 Kế thừa (Inheritance)
- 9 Ghi đè phương thức (Override)
- 10 Đa hình (Polymorphism)
- 11 Đóng gói (Encapsulation)
- 12 Ví dụ lớn: Hệ thống quản lý học sinh
- 13 Tính trừu tượng (Abstraction) – giải thích đơn giản
- 14 Mini Project: Quản lý cửa hàng nhỏ
- 15 Bài tập luyện OOP
- 16 Lời giải gợi ý
- 17 Kết bài
(Bài 9): Lập trình hướng đối tượng
Trong 8 bài học trước, chúng ta đã làm quen với biến, vòng lặp, hàm và các cấu trúc quan trọng trong Python. Tuy nhiên, nếu muốn phát triển các dự án lớn hơn – như phần mềm quản lý, game, ứng dụng web, bot, hay API – bạn cần một tư duy lập trình mạnh mẽ hơn: Lập trình hướng đối tượng (OOP – Object Oriented Programming).
OOP giúp:
-
tổ chức code gọn gàng hơn
-
tái sử dụng code hiệu quả
-
dễ mở rộng và bảo trì dự án
-
mô phỏng thế giới thực (xe, người, sản phẩm, đơn hàng…) thành các đối tượng
Tổng quan về OOP trong Python

OOP là cách tổ chức code xoay quanh đối tượng (object).
Đối tượng là thực thể có:
-
thuộc tính (property, attribute) → dữ liệu của đối tượng
-
hành vi (method) → chức năng của đối tượng
Ví dụ thực tế:
-
Đối tượng “Xe”
-
thuộc tính: màu, biển số, tốc độ
-
phương thức: chạy(), phanh()
-
-
Đối tượng “Học sinh”
-
thuộc tính: họ tên, tuổi, điểm số
-
phương thức: học(), thi(), nghỉ()
-
Python hỗ trợ lập trình hướng đối tượng một cách rất tự nhiên và dễ học.
Class và Object trong Python
Class = bản thiết kế
Object = sản phẩm tạo ra từ bản thiết kế đó
Ví dụ bản thiết kế “Con người”:
Ở đây:
-
Person= Class -
nguoi_a,nguoi_b= Object được tạo ra từ class
Thuộc tính & Phương thức
Thuộc tính: dữ liệu của object
Phương thức: hàm nằm bên trong class, dùng để xử lý logic của object
Ví dụ:
Tạo đối tượng:
Kết quả:
Hàm khởi tạo (Constructor) – __init__
Khi bạn tạo object, Python tự động gọi phương thức đặc biệt __init__().
Công dụng: gán giá trị khởi tạo cho object.
Ví dụ:
Tạo xe:
Phương thức trong class
Phương thức là hàm nhưng phải có tham số đầu tiên là self, đại diện cho chính object đó.
Ví dụ lớn: Quản lý sản phẩm (Product)
Kế thừa (Inheritance)
Cho phép class con thừa hưởng thuộc tính và phương thức của class cha.
Ví dụ:
Kết quả:
Ghi đè phương thức (Override)
Class con có thể thay đổi hành vi của class cha.
Đa hình (Polymorphism)
Nhiều object, cùng tên phương thức, nhưng hành vi khác nhau.
Đóng gói (Encapsulation)
Ẩn thông tin nội bộ, tránh để người dùng can thiệp trực tiếp.
Trong Python:
-
_bien→ protected -
__bien→ private
Ví dụ:
Ví dụ lớn: Hệ thống quản lý học sinh
Tính trừu tượng (Abstraction) – giải thích đơn giản
Chỉ bộc lộ phần cần thiết, che giấu phần thừa.
Bạn dùng TV → chỉ cần biết:
-
bật
-
tắt
-
tăng âm lượng
Không cần biết bên trong nó có mạch gì.
Trong Python, trừu tượng thường dùng ABC (Abstract Base Class), nhưng người mới chỉ cần hiểu khái niệm đã đủ.
Mini Project: Quản lý cửa hàng nhỏ
Yêu cầu:
-
Có class Product
-
Có class Order
-
Có class Customer
-
Khả năng:
-
thêm sản phẩm
-
mua hàng
-
trừ kho
-
tính tổng tiền
-
Code mẫu:
Bài tập luyện OOP
Bài 1: Tạo class “Book” có:
-
tên sách
-
tác giả
-
giá
-
phương thức show_info
Bài 2: Tạo class Vehicle → class Car kế thừa từ Vehicle
-
Vehicle có speed
-
Car có thêm số chỗ ngồi
-
ghi đè phương thức move()
Bài 3: Tạo class BankAccount
-
private balance
-
các phương thức: deposit(), withdraw(), get_balance()
Lời giải gợi ý
Bài 1
Bài 2
Bài 3
Kết bài
OOP là nền tảng cực kỳ quan trọng nếu bạn muốn trở thành lập trình viên Python chuyên nghiệp. Từ web backend (Django, Flask), AI, Data Science, Game Development đến Automation — tất cả đều dùng OOP.
Trong bài 9, bạn đã nắm được:
-
class & object
-
thuộc tính và phương thức
-
constructor
-
kế thừa
-
đa hình
-
đóng gói
-
ghi đè
-
abstraction
-
project quản lý cửa hàng


1 Trackback / Pingback