1. Nhập môn |
Giới thiệu về OOP |
- OOP là gì? Tại sao nên sử dụng?
- So sánh với Lập trình Thủ tục (Procedural Programming).
- Tổng quan 4 Trụ cột của OOP.
|
- Hiểu rõ mục đích và lợi ích của OOP.
- Phân biệt được tư duy lập trình hướng đối tượng.
|
2. Cốt lõi |
Lớp (Class) và Đối tượng (Object) |
- Lớp là bản thiết kế (Blueprint), Đối tượng là một thể hiện (Instance).
- Thuộc tính (Attributes) và Phương thức (Methods).
- Hàm tạo (Constructor) và Hàm hủy (Destructor).
|
- Định nghĩa các lớp, khai báo thuộc tính, phương thức.
- Tạo và quản lý các đối tượng từ lớp.
|
3. Trụ cột 1 & 2 |
Đóng gói & Kế thừa |
- Đóng gói (Encapsulation): Public, Private, Protected; Getters & Setters.
- Kế thừa (Inheritance): Lớp cha (Base), Lớp con (Derived); Ghi đè phương thức (Method Overriding).
|
- Áp dụng các mức truy cập để che giấu dữ liệu.
- Xây dựng hệ thống phân cấp lớp để tái sử dụng mã.
|
4. Trụ cột 3 & 4 |
Đa hình & Trừu tượng |
- Đa hình (Polymorphism): Tĩnh (Compile-time) và Động (Run-time).
- Trừu tượng (Abstraction): Lớp trừu tượng (Abstract Class) và Giao diện (Interface).
|
- Viết mã linh hoạt hơn với đa hình.
- Thiết kế các hợp đồng (contracts) bằng interface.
|
5. Nâng cao |
Quan hệ & Thành phần |
- Composition vs. Inheritance.
- Association, Aggregation, Composition.
- Thành viên tĩnh (Static Members).
|
- Hiểu và lựa chọn đúng mối quan hệ giữa các lớp.
- Sử dụng thành viên tĩnh cho dữ liệu/phương thức chung.
|
6. Thiết kế |
Nguyên lý SOLID & Mẫu thiết kế |
- Nghiên cứu 5 nguyên lý SOLID.
- Tìm hiểu về các Mẫu Thiết kế (Design Patterns) phổ biến: Creational, Structural, Behavioral.
|
- Viết mã dễ bảo trì, mở rộng và dễ hiểu hơn.
- Áp dụng các giải pháp đã được kiểm chứng cho các vấn đề thiết kế.
|
7. Thực hành |
Ứng dụng thực tế |
- Áp dụng tất cả kiến thức vào một dự án nhỏ (ví dụ: hệ thống quản lý thư viện, game đơn giản).
- Tái cấu trúc (Refactoring) mã nguồn cũ theo nguyên tắc OOP.
- Học cách vẽ Sơ đồ lớp UML (UML Class Diagram).
|
- Xây dựng một dự án hoàn chỉnh sử dụng OOP.
- Có khả năng đọc và thiết kế kiến trúc phần mềm cơ bản.
|