CodeGym
Khuyến mãi
Học tập
Khóa học
Bài tập
Khảo sát & Bài kiểm tra
Trò chơi
Trợ giúp
Lịch
Cộng đồng
Người dùng
Diễn đàn
Trò chuyện
Bài viết
Câu chuyện thành công
Hoạt động
Đánh giá
Gói đăng ký
Chủ đề sáng

Bài học

  • Đánh giá
  • Về chúng tôi
Bắt đầu
Bắt đầu học
Bắt đầu học ngay
  • Tiến độ của tôi
  • Khóa học
  • Bản đồ Quest
  • Bài học
  • Triển khai các trừu tượng và hệ thống phân cấp

    JAVA 25 SELF
    Cấp độ 19,Bài học 2
    Hướng dẫn thực hành về cách xây dựng hệ thống phân cấp lớp trong Java: từ trừu tượng đến chi tiết. Qua các ví dụ về hình học, mini‑trình biên tập, thanh toán và vận tải, chúng tôi cho thấy cách đưa phần chung vào lớp abstract cơ sở, ghi đè các phương thức như area()/ draw(), mở rộng hệ thống mà không phải viết lại mã và tránh trùng lặp. Kết thúc bằng tổng quan các lỗi thường gặp và lời khuyên về thiết kế.
    Có sẵn
  • Ví dụ xây dựng trừu tượng hóa trong các bài toán thực tế

    JAVA 25 SELF
    Cấp độ 19,Bài học 3
    Thực hành áp dụng trừu tượng hóa trong các kịch bản thực: thanh toán, phương tiện vận tải, trình biên tập đồ họa. Sẽ cho thấy cách đưa hành vi chung vào lớp abstract cơ sở, làm việc qua một hợp đồng chung và thay mã “ if- else” rậm rạp bằng đa hình. Trên đường đi, ta sẽ thấy cách gọi thống nhất các phương thức như process(), move(), draw()/ resize() để mã linh hoạt và dễ mở rộng.
    Có sẵn
  • Đơn giản hóa hệ thống phức tạp bằng các trừu tượng

    JAVA 25 SELF
    Cấp độ 19,Bài học 4
    Cách phân rã ứng dụng phức tạp thành các tầng trừu tượng (UI, logic nghiệp vụ, truy cập dữ liệu) để mã nguồn vẫn dễ hiểu và dễ mở rộng. Thực hành xây dựng một mini task‑manager với các tầng Task, TaskRepository, TaskService, minh họa việc thay thế các hiện thực và lợi ích cho đội ngũ. Phân tích thực hành tốt nhất, lỗi điển hình và ví dụ với các dịch vụ OrderService/ OrderRepository, cũng như các phương thức như saveOrder() và findUserById().
    Có sẵn
  • Khái niệm interface, cú pháp khai báo

    JAVA 25 SELF
    Cấp độ 20,Bài học 0
    Trong bài giảng này, bạn sẽ biết interface trong Java là gì, cách khai báo bằng từ khóa interface, cách các lớp triển khai hợp đồng thông qua implements, và vì sao các phương thức mặc định được coi là public abstract. Ta sẽ phân tích sự khác biệt giữa interface và class, các ví dụ từ JDK ( Comparable, Runnable, Serializable), sơ đồ trực quan và những lỗi thường gặp.
    Có sẵn
  • Sự khác nhau giữa interface và abstract class

    JAVA 25 SELF
    Cấp độ 20,Bài học 1
    Trong bài giảng này, chúng ta sẽ so sánh interface và abstract class trong Java: khi nào chọn cái nào, chúng khác nhau thế nào về khả năng và hạn chế, cú pháp/khai báo của chúng ( abstract class và interface), ý nghĩa của các modifier như public, abstract, static, đồng thời xem các ví dụ từ JDK, các case thực tiễn và lỗi thường gặp (kế thừa, triển khai, cách dùng implements/ extends).
    Có sẵn
  • Triển khai nhiều interface

    JAVA 25 SELF
    Cấp độ 20,Bài học 2
    Trong bài giảng này, chúng ta phân tích cách một lớp trong Java có thể triển khai nhiều interface cùng lúc: cú pháp với từ khóa implements, kết hợp nhiều vai trò (ví dụ: Movable, Attackable, Serializable), các chữ ký phương thức trùng nhau, không có “diamond of death”, và cách xử lý khi xung đột các phương thức default. Kèm theo các ví dụ thực tế và phân tích những lỗi thường gặp.
    Có sẵn
  • Giao diện hàm: @FunctionalInterface

    JAVA 25 SELF
    Cấp độ 20,Bài học 3
    Trong bài giảng này, chúng ta tìm hiểu giao diện hàm là gì (chỉ có đúng một phương thức trừu tượng), cách và lý do gắn chú thích @FunctionalInterface, những gì được phép bổ sung cho giao diện bằng các phương thức default và static, cũng như cách áp dụng các giao diện đó trong thực tế (lớp thông thường và lớp ẩn danh). Các ví dụ với Runnable, Comparator<T> và các giao diện từ java.util.function được bổ sung bằng một bảng và phần phân tích lỗi thường gặp.
    Có sẵn
  • Giao diện trong kiến trúc Java, các mẫu thiết kế

    JAVA 25 SELF
    Cấp độ 20,Bài học 4
    Cách các interface biến mã thành một kiến trúc linh hoạt: lập trình hướng trừu tượng, tiêm phụ thuộc qua DI, thay thế các hiện thực trong kiểm thử, thêm hành vi mới mà không cần sửa lõi ( OCP). Phân tích cách interface là nền tảng của các mẫu Observer, Strategy, Command, và minh hoạ thực hành qua ví dụ ( UserRepository, NotificationSender, các chiến lược thanh toán).
    Có sẵn
  • Giới thiệu về biểu thức lambda

    JAVA 25 SELF
    Cấp độ 21,Bài học 0
    Trong bài giảng này, chúng ta sẽ tìm hiểu biểu thức lambda trong Java: chúng là gì và dùng để làm gì, cú pháp và các rút gọn trông như thế nào, lambda liên hệ với functional interface ( @FunctionalInterface) ra sao, khác gì so với lớp ẩn danh, và cơ chế bắt biến (capture) hoạt động thế nào ( final / effectively final). Qua các ví dụ thực tế với Runnable, Consumer, Comparator, Function và Stream API, bạn sẽ thấy cách viết ngắn gọn và dễ đọc hơn. Kết thúc bằng mục “Các lỗi thường gặp” và mẹo để tránh chúng.
    Có sẵn
  • Method References (::): tham chiếu tới phương thức

    JAVA 25 SELF
    Cấp độ 21,Bài học 1
    Hướng dẫn ngắn gọn về tham chiếu phương thức trong Java: khi nào và cách dùng method reference thay cho lambda. Ta xem 4 dạng: Class::method (static và “trên instance”), object::method, Class::new. Ta sẽ hiểu cách khớp chữ ký với các functional interface, so sánh với biểu thức lambda, xem ví dụ thực tế với forEach, sort, map và bàn về các lỗi thường gặp (không khớp chữ ký, nạp chồng phương thức, v.v.).
    Có sẵn
  • Các phương thức default trong interface

    JAVA 25 SELF
    Cấp độ 21,Bài học 2
    Trong bài giảng này, chúng ta tìm hiểu vì sao trong Java 8 xuất hiện các phương thức default trong interface, cách chúng cho phép phát triển API mà không làm hỏng mã cũ, cú pháp của chúng (từ khóa default đứng trước kiểu trả về) và hành vi trong các lớp triển khai. Qua các ví dụ từ thư viện chuẩn ( List: forEach, replaceAll, sort) chúng ta xem xét cách áp dụng trong thực tế. Cũng sẽ bàn về các hạn chế: không thể override các phương thức của Object ( equals/ hashCode/ toString), cùng các quy tắc giải quyết xung đột khi triển khai nhiều interface và những lỗi thường gặp.
    Có sẵn
  • Phương thức static trong interface

    JAVA 25 SELF
    Cấp độ 21,Bài học 3
    Phân tích cách và lý do các interface trong Java có các static-method: cú pháp khai báo, khác biệt so với các phương thức default, những hạn chế chính (không được kế thừa, không thể ghi đè, chỉ gọi qua tên interface, chỉ truy cập các thành viên static, hỗ trợ private static từ Java 9+). Thực hành với Movable.resetPosition(), tiện ích Logger, các factory bộ sưu tập List.of()/ Set.of()/ Map.of() và utility Comparator.reverseOrder(). Cuối cùng — các lỗi thường gặp và cách tránh chúng.
    Có sẵn
  • 1
  • ...
  • 9
  • 10
  • 11
  • 12
  • 13
  • ...
  • 30
Học
  • Đăng ký
  • Khóa học Java
  • Trợ giúp bài tập
  • Bảng giá
  • Cú pháp Java
Cộng đồng
  • Người dùng
  • Bài viết
  • Diễn đàn
  • Trò chuyện
  • Câu chuyện thành công
  • Hoạt động
  • Chương trình giới thiệu
Công ty
  • Về chúng tôi
  • Liên hệ
  • Đánh giá
  • Phòng báo chí
  • CodeGym cho EDU
  • Câu hỏi thường gặp
  • Hỗ trợ
CodeGymCodeGym là một khóa học trực tuyến để học lập trình Java từ đầu. Khóa học này là cách hoàn hảo để nắm vững Java cho người mới bắt đầu. Nó chứa 1200+ bài tập với kiểm tra ngay lập tức và phạm vi lý thuyết cơ bản cần thiết về Java. Để giúp bạn thành công trong học tập, chúng tôi đã triển khai một bộ tính năng tạo động lực: bài kiểm tra, dự án lập trình, nội dung về phương pháp học hiệu quả, và hỗ trợ sự nghiệp lập trình viên Java.
Theo dõi chúng tôi
Ngôn ngữ giao diện
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский
Vietnamese
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym
MastercardVisa
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym