Giai đoạn 2 – Lập trình hướng đối tượng (2–3 tháng)
Lớp, Đối tượng, Thuộc tính và Phương thức
- Cấu trúc lớp
- Khởi tạo đối tượng
- Sử dụng this
- Thực hành tốt: đặt tên, tổ chức mã
Đóng gói, Kế thừa, Đa hình và Trừu tượng
- Đóng gói: private, getters/setters, xác thực dữ liệu
- Kế thừa: extends, ghi đè (@Override)
- Đa hình: Kiểu con, nạp chồng phương thức
- Trừu tượng: tổng quan, chuẩn bị cho interfaces và abstract classes
Interfaces và Abstract Classes
- Interfaces: implements, default methods
- Abstract classes: phương thức trừu tượng và cụ thể
- Sự khác biệt giữa interface và abstract class
Hàm tạo, Khối khởi tạo và Khối tĩnh
- Hàm tạo mặc định và có tham số, gọi với this()
- Khối khởi tạo ({}) và khối tĩnh (static {})
Kiểu liệt kê (Enumerations)
- Tạo và sử dụng enum
- Phương thức và thuộc tính trong enum
Bộ sưu tập cơ bản
- ArrayList: thêm, xóa, lặp (for, forEach, Iterator)
- HashMap: khóa-giá trị, các thao tác phổ biến
- HashSet: loại bỏ trùng lặp
- Giới thiệu Queue và Stack (ví dụ: LinkedList như queue/stack)
- Giới thiệu Java Collections Framework
Thuật toán cơ bản
- Tìm kiếm tuyến tính và nhị phân
- Sắp xếp: Bubble Sort, Collections.sort()
- Đệ quy: khái niệm và ví dụ đơn giản (ví dụ: giai thừa, Fibonacci)
- Giới thiệu về độ phức tạp (O(n), O(log n))
Generics
- Cú pháp (), bộ sưu tập generic, phương thức generic
- Giới hạn (extends, super)
Stream API (Giới thiệu)
- Thao tác cơ bản: filter, map, collect
- Ví dụ với ArrayList
Kiểm thử đơn vị (Giới thiệu)
- Sử dụng cơ bản JUnit
- Viết test cases cho lớp và phương thức
- Giới thiệu TDD (Test-Driven Development)
Dự án cuối kỳ
- Hệ thống thư viện
- Lớp: Book, User, Library
- Kế thừa: DigitalBook và PhysicalBook
- Bộ sưu tập: ArrayList cho sách, HashMap cho mượn sách
- Đóng gói: xác thực dữ liệu
- Git: commit cho mỗi tính năng (ví dụ:
feature/book-management
)
- Đăng lên GitHub với README giải thích rõ ràng
Tài nguyên cập nhật