Skip to content

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