Thẻ

#oop

99 Ngày Java — Ngày 30: Mini project OOP — Quản lý thư viện

Bài tổng hợp 20 ngày OOP: phân tích đề bài, tổ chức package model/repository/service/app, áp dụng đủ 4 trụ cột — và kiến trúc phân tầng sẽ gặp lại trong Spring.

26 thg 8, 202612 phút19
99 Ngày Java — Ngày 29: Immutable & defensive copy

Công thức lớp bất biến, vì sao final chưa đủ và defensive copy hai chiều, List.copyOf vs unmodifiableList — và món quà thread-safe không cần lock.

25 thg 8, 202611 phút14
99 Ngày Java — Ngày 20: Record & lớp bất biến

Ngày 20 của 99 Ngày Java: record — lớp dữ liệu trong một dòng khai báo với equals/hashCode/toString tự sinh, compact constructor cho validation, so sánh với Lombok và JavaBean, value semantics cùng record pattern của Java 21 — và ranh giới sử dụng: DTO dùng record, entity dùng class.

16 thg 8, 20266 phút31
99 Ngày Java — Ngày 19: Inner class & anonymous class

Ngày 19 của 99 Ngày Java: bốn dạng nested class — member inner (tham chiếu ngầm tới đối tượng ngoài), static nested (lựa chọn mặc định), local class trong method, anonymous class dùng một lần — cùng quy tắc capture effectively final và bảng quyết định chọn dạng phù hợp.

15 thg 8, 20266 phút46
99 Ngày Java — Ngày 18: static & final

Ngày 18 của 99 Ngày Java: static — thành viên thuộc về lớp thay vì đối tượng, static block và static import, ba cấp độ của final (biến, method, lớp), mẫu hằng số public static final, và ranh giới quan trọng: static bất biến thì an toàn, static có thể ghi là trạng thái toàn cục nguy hiểm.

14 thg 8, 20266 phút94
99 Ngày Java — Ngày 17: Interface

Ngày 17 của 99 Ngày Java: interface — hợp đồng thuần túy tách khỏi cây kế thừa, implement nhiều interface cùng lúc, default & static method cho phép API tiến hóa không phá vỡ mã cũ, và functional interface — cửa ngõ sang lambda và lập trình hàm.

13 thg 8, 20266 phút42
99 Ngày Java — Ngày 16: Abstract class

Ngày 16 của 99 Ngày Java: abstract class và abstract method — chuyển quy ước override thành ràng buộc biên dịch, khi nào nên dùng, mẫu template method (lớp cha kiểm soát trình tự, lớp con cung cấp chi tiết), và bảng so sánh với interface trước khi tìm hiểu nó ở Ngày 17.

12 thg 8, 20266 phút90
99 Ngày Java — Ngày 15: Đa hình (Polymorphism)

Ngày 15 của 99 Ngày Java: upcasting và dynamic dispatch — kiểu biến vs kiểu đối tượng thật, một vòng lặp tính lương cho mọi loại nhân viên, downcasting với instanceof & pattern matching, lập trình theo hợp đồng (nền móng của DI), và toString — đa hình bạn dùng mỗi ngày.

11 thg 8, 20266 phút43
99 Ngày Java — Ngày 14: Kế thừa (Inheritance)

Ngày 14 của 99 Ngày Java: extends từ class cha, override với @Override và super., thứ tự khởi tạo từ cha trước con sau qua super(...), protected .v.v

10 thg 8, 20266 phút87