• Bộ hỏi đáp trắc nghiệm được lọc chuẩn xác từ tài liệu ôn tập.
• Số thứ tự câu hỏi được giữ nguyên theo tài liệu gốc.
• Chọn đáp án để kiểm tra ngay kết quả đúng/sai và xem giải thích chi tiết.
Tổng số câu hỏi trong phần này: 97 câu
Câu 1. Trong kiến trúc bộ nhớ Java, "Biến" (Variable) được hiểu là gì?
Giải thích: Giải thích: Theo tài liệu Chương 1, biến là tên gọi đại diện cho vùng không gian trong RAM dùng lưu trữ dữ liệu tạm thời.
Câu 2. Quy tắc đặt tên biến CamelCase yêu cầu chữ cái đầu tiên của từ thứ nhất phải như thế nào?
Giải thích: Giải thích: Quy ước CamelCase yêu cầu viết thường chữ cái đầu tiên và viết hoa chữ cái đầu của các từ tiếp theo.
Câu 3. Kiểu dữ liệu short trong Java chiếm bao nhiêu byte trong bộ nhớ RAM?
Giải thích: Giải thích: Bảng tổng hợp chương 4 xác định kiểu short có kích thước 2 bytes (16-bit).
Câu 4. Điểm khác biệt lớn nhất về kích thước ô nhớ giữa kiểu int và kiểu float là gì?
Giải thích: Giải thích: Theo bảng so sánh, cả int (số nguyên mặc định) và float (số thực nhỏ) đều chiếm 4 bytes.
Câu 5. Khi khai báo biến kiểu long và gán giá trị lớn, tại sao hậu tố 'L' lại được ưu tiên dùng hơn 'l'?
Giải thích: Giải thích: Tài liệu ghi chú hậu tố 'L' được ưu tiên để tránh nhầm lẫn với số 1 trong trình soạn thảo.
Câu 6. Kiểu dữ liệu nào sau đây được phân loại vào nhóm "Kiểu dữ liệu tham chiếu"?
Giải thích: Giải thích: Nhóm tham chiếu bao gồm lớp String, mảng và các Class, trong khi A, B, D là kiểu nguyên thủy.
Câu 7. Trong mô hình "Kho đồ đạc", yếu tố nào quyết định kích thước và loại đồ vật được chứa bên trong chiếc hộp?
Giải thích: Giải thích: Kiểu dữ liệu quyết định kích thước ô nhớ và loại dữ liệu được chứa bên trong.
Câu 8. Biến kiểu char trong Java được thiết kế để biểu diễn một ký tự Unicode đơn và chiếm bao nhiêu bit?
Giải thích: Giải thích: Kiểu char có kích thước 2 bytes, tương đương 16-bit Unicode.
Câu 9. Điều gì xảy ra khi bạn khai báo float fuel = 7.5; mà thiếu hậu tố 'f' hoặc 'F'?
Giải thích: Giải thích: Số thực có dấu phẩy mặc định là double. Gán double vào float (nhỏ hơn) gây lỗi tương thích kiểu.
Câu 10. Trong lập trình hướng đối tượng, "Lớp" (Class) đóng vai trò là gì?
Giải thích: Giải thích: Lớp là bản thiết kế hoặc khuôn mẫu quy định thuộc tính và hành vi chung của một nhóm thực thể.
Câu 11. Từ khóa new trong Java có nhiệm vụ cốt lõi là gì?
Giải thích: Giải thích: Đối tượng được sinh ra từ khuôn mẫu của lớp thông qua lệnh khởi tạo với từ khóa new.
Câu 12. Đặc điểm nào sau đây phân biệt Hàm tạo (Constructor) với các phương thức thông thường?
Giải thích: Giải thích: Hàm tạo có tên trùng lớp, không có kiểu trả về (không dùng void) và chỉ chạy một lần khi sinh ra đối tượng.
Câu 13. Cơ chế "Nạp chồng hàm tạo" (Constructor Overloading) dựa trên sự khác biệt về yếu tố nào?
Giải thích: Giải thích: Nạp chồng là tạo nhiều hàm tạo cùng tên lớp nhưng khác biệt về danh sách tham số đầu vào.
Câu 14. Trong ví dụ về hệ thống Game, tại sao cần nạp chồng hàm tạo "Tạo phòng nhanh" và "Phòng tùy chỉnh"?
Giải thích: Giải thích: Nạp chồng cho phép Java tự động nhận diện và gọi đúng hàm tạo để khởi tạo trạng thái tự động (mặc định) hoặc tùy chỉnh.
Câu 15. "Đối tượng" (Object) được định nghĩa như thế nào trong kiến trúc phần mềm?
Giải thích: Giải thích: Đối tượng là một thể hiện cụ thể (instance) được sinh ra từ khuôn mẫu lớp, có trạng thái riêng.
Câu 16. Để biểu diễn thuộc tính "Số khung, số máy" của một chiếc ô tô (dãy số định danh dài), kiểu dữ liệu nào là tối ưu nhất?
Giải thích: Giải thích: Các mã định danh cực dài (ID BigData, số khung xe) được tài liệu khuyên dùng kiểu long.
Câu 17. Trong Java, kiểu dữ liệu nào chỉ chấp nhận một trong hai trạng thái duy nhất: true hoặc false?
Giải thích: Giải thích: Nhóm Logic (Boolean) chỉ chấp nhận giá trị true hoặc false.
Câu 18. Một lớp có thuộc tính String hoTen;. Khi tạo đối tượng bằng new, biến hoTen sẽ lưu trữ điều gì trong ô nhớ?
Giải thích: Giải thích: String là kiểu tham chiếu, nó không lưu giá trị trực tiếp mà lưu địa chỉ dẫn đến đối tượng trên Heap.
Câu 20. Khái niệm "Hành vi" (Behavior) của một đối tượng được ánh xạ vào thành phần nào trong mã nguồn Java?
Giải thích: Giải thích: Các phương thức (methods) quy định các hành động hoặc cách thức hoạt động (hành vi) của đối tượng.
Câu 21. Tính chất nào của OOP cho phép một lớp con thừa hưởng toàn bộ thuộc tính và phương thức của lớp cha?
Giải thích: Giải thích: Tính kế thừa cho phép lớp con (Subclass) sở hữu tài sản của lớp cha (Superclass).
Câu 22. Mối quan hệ "IS-A" (Là một) được minh họa chính xác qua ví dụ nào dưới đây?
Giải thích: Giải thích: Kế thừa đại diện cho quan hệ "IS-A", ví dụ Xe hơi là một Phương tiện.
Câu 23. Từ khóa nào là lệnh duy nhất trong Java để thiết lập cầu nối kế thừa giữa lớp con và lớp cha?
Giải thích: Giải thích: Từ khóa extends là lệnh duy nhất để thiết lập quan hệ kế thừa trong Java.
Câu 24. Trong kế thừa nhiều tầng (Multi-level), điều gì xảy ra với lớp ở cuối chuỗi tuyến tính (ví dụ tầng 3)?
Giải thích: Giải thích: Cơ chế tích lũy giúp lớp cuối chuỗi sở hữu toàn bộ di sản từ hệ thống tổ tiên.
Câu 25. Trong ví dụ về nhân vật Game (GameCharacter -> Warrior -> Berserker), lớp Berserker có thể làm gì?
Giải thích: Giải thích: Do kế thừa nhiều tầng, lớp ở tầng 3 có quyền tương tác với bộ nhớ (thuộc tính HP) của lớp gốc ở tầng 1.
Câu 26. Lợi ích quan trọng nhất của Tính Đóng gói (Encapsulation) trong kiến trúc phần mềm là gì?
Giải thích: Giải thích: Mục đích cốt lõi là che giấu và cô lập trạng thái nhạy cảm bên trong cấu trúc đối tượng.
Câu 27. Để bảo mật dữ liệu nhạy cảm theo đúng nguyên tắc đóng gói, các thuộc tính thường được khai báo với quyền truy cập nào?
Giải thích: Giải thích: Các thuộc tính nhạy cảm thường để là private để cách ly với môi trường ngoài.
Câu 28. Phương thức "setter" được ví như thành phần nào để bảo vệ logic nghiệp vụ?
Giải thích: Giải thích: Setter hoạt động như người gác cổng, đảm bảo chỉ dữ liệu đúng quy chuẩn mới được nạp vào.
Câu 29. Thiết lập một thuộc tính ở chế độ "Chỉ đọc" (Read-Only) bằng cách nào?
Giải thích: Giải thích: Có Getter giúp xem được giá trị, nhưng không có Setter khiến giá trị không thể bị thay đổi.
Câu 30. Tại sao mật khẩu người dùng (Password) nên được cấu hình ở chế độ "Chỉ ghi" (Write-Only)?
Giải thích: Giải thích: Chế độ Chỉ ghi (có setter, không có getter) giúp bảo mật tuyệt đối dữ liệu nhạy cảm.
Câu 31. Bản chất của Tính Đa hình (Polymorphism) được thể hiện qua điều gì?
Giải thích: Giải thích: Đa hình là cùng một lời gọi nhưng kết quả khác nhau tùy theo bản chất đối tượng gọi hành động đó.
Câu 32. Cơ chế "Ghi đè phương thức" (Method Overriding) yêu cầu lớp con phải làm gì?
Giải thích: Giải thích: Ghi đè là việc lớp con cài đặt lại nội dung xử lý đặc thù cho hàm đã có ở lớp cha.
Câu 33. Annotation @Override đóng vai trò gì trong quá trình lập trình?
Giải thích: Giải thích: @Override giúp compiler kiểm tra tính hợp lệ, tránh lỗi sai tên hàm hoặc tham số.
Câu 34. "Đa hình lúc thực thi" (Run-time Polymorphism) mang lại lợi ích gì cho hệ thống quản lý lương?
Giải thích: Giải thích: Đa hình giúp tự động chọn đúng công thức (calculateSalary) khi duyệt danh sách chung, giúp code gọn gàng.
Câu 35. Phép so sánh nào sau đây minh họa chính xác giá trị cốt lõi của Đa hình?
Giải thích: Giải thích: Ví dụ nút lệnh "Play" mô tả rõ cùng một lời gọi nhưng hành vi thực tế phụ thuộc vào đối tượng xử lý.
Câu 36. Tính Trừu tượng (Abstraction) tập trung vào khía cạnh nào của một thực thể?
Giải thích: Giải thích: Bản chất của trừu tượng là phơi bày hành động cốt lõi và ẩn đi cách thức hoạt động phức tạp.
Câu 37. Tại sao một Lớp trừu tượng (Abstract Class) không được phép khởi tạo đối tượng trực tiếp bằng new?
Giải thích: Giải thích: Lớp trừu tượng là bản thiết kế chưa hoàn chỉnh (khái niệm) nên Java ngăn tạo thực thể trực tiếp.
Câu 38. Giao diện (Interface) trong Java được định nghĩa như thế nào trong thiết kế kiến trúc?
Giải thích: Giải thích: Interface là bộ khung quy chuẩn, bản hợp đồng hành vi chỉ chứa định nghĩa tính năng mà không có thân hàm.
Câu 39. Điểm đột phá nhất của Interface giúp giải quyết hạn chế nào của ngôn ngữ Java?
Giải thích: Giải thích: Khả năng thực thi nhiều Interface giúp mở rộng tính năng mà không vi phạm quy tắc đơn kế thừa lớp của Java.
Câu 40. Mối quan hệ "CAN-DO" (Có khả năng làm gì) được biểu diễn tốt nhất qua ví dụ nào?
Giải thích: Giải thích: Interface mô tả các khả năng/hành động chung của các đối tượng có bản chất khác nhau.
Câu 51. Trong kế thừa nhiều tầng (Multi-level Inheritance), cơ chế "Tích lũy tài sản" cho phép lớp ở cuối chuỗi tuyến tính thực hiện điều gì?
Giải thích: Giải thích: Qua mỗi tầng kế thừa, lớp con sẽ tích lũy và sở hữu toàn vẹn di sản từ các lớp phía trên, giúp tái sử dụng mã nguồn tối đa.
Câu 52. Tại sao trong Case Study về nhân vật Game, lớp Berserker có thể tự trừ HP của chính mình thông qua logic kế thừa từ lớp GameCharacter?
Giải thích: Giải thích: Do quan hệ kế thừa nhiều tầng, lớp ở tầng 3 (Berserker) có quyền tương tác trực tiếp với bộ nhớ (thuộc tính HP) của lớp gốc ở tầng 1.
Câu 56. Bản chất thực sự của Tính Đa hình (Polymorphism) được tài liệu ví với nút lệnh nào trong các ứng dụng thực tế?
Giải thích: Giải thích: Đa hình cho phép cùng một tên phương thức thực thi các kịch bản khác nhau tùy thuộc vào bản chất đối tượng thực tế gọi nó.
Câu 57. Điều kiện bắt buộc để thực hiện "Ghi đè phương thức" (Method Overriding) giữa lớp con và lớp cha là gì?
Giải thích: Giải thích: Ghi đè yêu cầu sự trùng khớp hoàn toàn về chữ ký phương thức để Java có thể nhận diện đa hình lúc thực thi.
Câu 58. Lợi ích lớn nhất của "Đa hình lúc thực thi" (Run-time Polymorphism) khi xử lý danh sách nhân viên có tính chất khác nhau là gì?
Giải thích: Giải thích: Đa hình lúc thực thi tuân theo nguyên lý Mở rộng (Open/Closed), giúp hệ thống linh hoạt và dễ bảo trì.
Câu 59. Tại sao một Lớp trừu tượng (Abstract Class) không thể khởi tạo đối tượng trực tiếp bằng từ khóa new?
Giải thích: Giải thích: Khởi tạo một đối tượng "chung chung" (ví dụ: Động vật) là vô nghĩa khi nó chưa có hình hài hay tiếng kêu cụ thể.
Câu 60. Điểm "đột phá" của Giao diện (Interface) so với kế thừa lớp thông thường trong Java là gì?
Giải thích: Giải thích: Khả năng ký kết nhiều hợp đồng hành vi giúp lớp mở rộng tính năng mà không vi phạm quy tắc đơn kế thừa của Java.
Câu 61. Mối quan hệ "CAN-DO" (Có khả năng làm gì) được mô tả chính xác nhất qua ví dụ nào?
Giải thích: Giải thích: Interface tập trung vào hành động/khả năng chung thay vì bản chất cốt lõi của đối tượng.
Câu 76. Một biến kiểu int chiếm 4 bytes trong bộ nhớ. Kiểu dữ liệu nào sau đây thuộc nhóm số thực cũng chiếm đúng 4 bytes?
Giải thích: Giải thích: Cả int (số nguyên) và float (số thực nhỏ) đều có kích thước 32-bit (4 bytes).
Câu 77. Theo quy ước CamelCase cho tên định danh, tên biến nào sau đây được viết đúng chuẩn Java?
Giải thích: Giải thích: CamelCase yêu cầu viết thường chữ cái đầu của từ đầu tiên và viết hoa các chữ cái đầu của các từ tiếp theo.
Câu 78. Tại sao tính kế thừa (Inheritance) được coi là trụ cột để ánh xạ thế giới thực vào cấu trúc phần mềm?
Giải thích: Giải thích: Kế thừa cho phép viết logic một lần tại lớp cha và cấp phát quyền sử dụng cho hàng trăm lớp con.
Câu 80. Annotation @Override đóng vai trò là "chốt chặn an toàn" vì lý do nào?
Giải thích: Giải thích: Sử dụng @Override giúp tránh các lỗi gõ sai tên hàm tiềm ẩn, đảm bảo tính đa hình diễn ra chính xác.
Câu 81. Trong tính đóng gói, nếu một thuộc tính chỉ có phương thức getter mà không có setter, nó tạo ra trạng thái gì?
Giải thích: Giải thích: Đây là cách bảo vệ dữ liệu, đảm bảo trạng thái đối tượng không bị thay đổi tùy ý từ môi trường ngoài.
Câu 82. Sự khác biệt cơ bản về "Khả năng khởi tạo" giữa Abstract Class và Interface là gì?
Giải thích: Giải thích: Cả hai đều là những bản thiết kế định hướng, chưa hoàn chỉnh nên Java ngăn cản việc tạo thực thể trực tiếp.
Câu 86. Trong mô hình hướng đối tượng, "Hành vi" (Behavior) của đối tượng được lập trình viên thể hiện qua đâu?
Giải thích: Giải thích: Các phương thức quy định các hành động hoặc cách thức hoạt động mà đối tượng có thể thực hiện.
Câu 87. Từ khóa nào trong Java là lệnh duy nhất để thiết lập cầu nối kế thừa giữa hai lớp?
Giải thích: Giải thích: extends tạo ra quan hệ cha-con, nơi con thừa hưởng tài sản từ cha để mở rộng tính năng.
Câu 90. Cơ chế "Nạp chồng hàm tạo" (Constructor Overloading) giúp giải quyết nhu cầu thực tế nào?
Giải thích: Giải thích: Nạp chồng giúp linh hoạt hóa quá trình "ra đời" của đối tượng (ví dụ: tạo phòng game mặc định hoặc tùy chỉnh).
Câu 95. Kiểu dữ liệu char trong Java được thiết kế để lưu trữ cái gì và chiếm bao nhiêu bit?
Giải thích: Giải thích: char trong Java sử dụng bảng mã Unicode nên có kích thước lớn hơn kiểu char trong một số ngôn ngữ cũ chỉ dùng ASCII 8-bit.
Câu 96. Tại sao nói tính Trừu tượng (Abstraction) giúp quản lý độ phức tạp của hệ thống phần mềm?
Giải thích: Giải thích: Trừu tượng giúp lập trình viên tập trung vào bức tranh lớn, định hình kiến trúc mà không bị sa lầy vào chi tiết kỹ thuật nhỏ lẻ.
Câu 97. Trong đóng gói, phương thức setter thường chứa cấu trúc if để làm gì?
Giải thích: Giải thích: Setter ngăn chặn các giá trị vô lý (ví dụ: nạp số âm cho tuổi nhân viên) nạp vào hệ thống.
Câu 103. Khi thiết kế một lớp trừu tượng (Abstract Class), đặc điểm nào sau đây là bắt buộc về mặt cú pháp?
Giải thích: Giải thích: Abstract Class là bản thiết kế chưa hoàn chỉnh nên Java ngăn cấm việc tạo thực thể trực tiếp.
Câu 106. Kiểu dữ liệu nguyên thủy float chiếm 4 bytes trong bộ nhớ. Để gán giá trị 7.5 cho biến kiểu này, cách viết nào sau đây là đúng quy tắc?
Giải thích: Giải thích: Java mặc định số thực có dấu phẩy là double (8 bytes), nên cần hậu tố f để xác nhận ép về float (4 bytes).
Câu 108. Trong quan hệ kế thừa nhiều tầng (Multi-level), lớp ở tầng cuối cùng sẽ sở hữu những gì từ các lớp phía trên?
Giải thích: Giải thích: Cơ chế tích lũy tài sản cho phép lớp con kế thừa di sản của cả hệ thống tổ tiên trong chuỗi tuyến tính.
Câu 110. Bản chất của tính Đa hình (Polymorphism) thông qua cơ chế Ghi đè phương thức (Overriding) là gì?
Giải thích: Giải thích: Đa hình cho phép chuẩn hóa lệnh gọi ở tầng trên trong khi kết quả thực thi phụ thuộc vào bản chất đối tượng.
Câu 113. Kiểu dữ liệu char trong Java chiếm bao nhiêu byte và dùng để lưu trữ loại dữ liệu nào?
Giải thích: Giải thích: char trong Java hỗ trợ Unicode 16-bit nên có kích thước 2 bytes.
Câu 115. Một thuộc tính được gọi là ở chế độ "Chỉ ghi" (Write-Only) khi nào?
Giải thích: Giải thích: Chế độ này thường dùng cho mật khẩu để đảm bảo dữ liệu có thể thay đổi nhưng không bị rò rỉ ra ngoài.
Câu 117. Điểm khác biệt quan trọng nhất giúp Interface giải quyết hạn chế của Java so với kế thừa lớp là gì?
Giải thích: Giải thích: Đây là cơ chế giúp Java mở rộng khả năng của lớp mà không vi phạm quy tắc đơn kế thừa.
Câu 120. Tại sao tính Trừu tượng (Abstraction) được ví là "Nghệ thuật ẩn giấu sự phức tạp"?
Giải thích: Giải thích: Trừu tượng hóa giúp đơn giản hóa tương tác cho người dùng và bảo vệ logic cốt lõi của hệ thống.
Câu 122. Kiểu dữ liệu nguyên thủy nào sau đây chiếm 8 bytes và được khuyên dùng cho các số nguyên cực lớn (như ID BigData)?
Giải thích: Giải thích: long là kiểu số nguyên lớn nhất trong nhóm nguyên thủy, chiếm 8 bytes.
Câu 124. Trong tính đóng gói, phương thức "setter" thường chứa cấu trúc kiểm tra if nhằm mục đích gì?
Giải thích: Giải thích: Setter ngăn chặn các dữ liệu vô lý (như tuổi âm) nạp vào trạng thái của đối tượng.
Câu 126. Một biến được khai báo bên trong một phương thức (Method) được gọi là gì và có phạm vi sử dụng như thế nào?
Giải thích: Giải thích: Biến cục bộ được giải phóng ngay sau khi phương thức kết thúc thực thi.
Câu 128. Trong ví dụ về xe cộ (Vehicle Hierarchy), tại sao lớp Car ở tầng 3 có thuộc tính maxSpeed mặc dù không khai báo trong code?
Giải thích: Giải thích: Kế thừa nhiều tầng cho phép lớp con kế thừa toàn bộ di sản của hệ thống tổ tiên.
Câu 131. Quy tắc đặt tên biến CamelCase yêu cầu điều gì đối với cụm từ "số dư tài khoản"?
Giải thích: Giải thích: CamelCase yêu cầu viết thường từ đầu tiên và viết hoa chữ cái đầu các từ tiếp theo.
Câu 134. Một lớp cụ thể (Concrete Class) khi ký kết (implement) một Interface thì bắt buộc phải thực hiện hành động nào?
Giải thích: Giải thích: Interface là một bản hợp đồng, lớp thực thi phải hoàn thành mọi cam kết (phương thức) đã nêu.
Câu 136. Trong mô hình hướng đối tượng, "Trạng thái" (State) của một đối tượng cụ thể được lưu giữ tại đâu?
Giải thích: Giải thích: Các biến thành viên quy định các đặc điểm và dữ liệu hiện tại của một thực thể đối tượng.
Câu 138. Phép so sánh nào sau đây minh họa chính xác giá trị của tính Đa hình trong thực tế?
Giải thích: Giải thích: Đa hình cho phép hệ thống linh hoạt xử lý các đối tượng khác nhau thông qua một giao diện điều khiển chung.
Câu 140. Annotation @Override đóng vai trò là "chốt chặn an toàn" cho lập trình viên vì lý do nào?
Giải thích: Giải thích: @Override đảm bảo cấu trúc đa hình được thực hiện chính xác theo thiết kế ban đầu.
Câu 143. Kiểu dữ liệu nguyên thủy byte (1 byte) thường được ứng dụng tối ưu nhất trong trường hợp nào?
Giải thích: Giải thích: Với các con số nhỏ, dùng byte giúp tối ưu dung lượng bộ nhớ so với int.
Câu 144. Tại sao một lớp chỉ có duy nhất một hàm tạo có tham số thì Java sẽ không tự động sinh ra hàm tạo mặc định (không tham số) nữa?
Giải thích: Giải thích: Khi đã có hàm tạo tùy chỉnh, Java nhường quyền kiểm soát quy trình khởi tạo hoàn toàn cho lập trình viên.
Câu 146. Điểm khác biệt cốt lõi về bản chất giữa Abstract Class và Interface là gì?
Giải thích: Giải thích: Đây là ranh giới quan trọng để lựa chọn công cụ kiến trúc phù hợp trong thiết kế OOP.
Câu 149. Quy tắc đặt tên định danh (Identifiers) quy định ký tự nào sau đây KHÔNG được dùng để bắt đầu tên biến?
Giải thích: Giải thích: Một trong những quy tắc bắt buộc của Java là tên định danh không được bắt đầu bằng chữ số.
Câu 151. Trong Case Study về nhân vật Game (GameCharacter -> Warrior -> Berserker), tại sao lớp Berserker có thể gọi phương thức basicAttack() mà không cần định nghĩa lại?
Giải thích: Giải thích: Trong kế thừa nhiều tầng, lớp ở cuối chuỗi sẽ tự động hút và sở hữu toàn vẹn tài sản (thuộc tính/phương thức) từ tất cả các lớp tổ tiên phía trên,.
Câu 152. Khi thiết kế hệ thống thanh toán (PaymentMethod), tại sao phương thức pay(double amount) trong lớp cha nên được khai báo là abstract?
Giải thích: Giải thích: Bản chất của lớp trừu tượng là đóng vai trò một bản thiết kế định hướng (khái niệm), buộc các lớp con cụ thể phải ghi đè để định nghĩa hành vi thực tế,.
Câu 160. Điểm khác biệt quan trọng nhất giữa Abstract Class và Interface về mặt dữ liệu (thuộc tính) là gì?
Giải thích: Giải thích: Abstract Class là dạng hỗn hợp nên có thể chứa trạng thái (biến), trong khi Interface là bộ khung quy chuẩn rỗng, các biến bên trong nó mặc định là hằng số hệ thống,.
Câu 162. Để đảm bảo tính Đóng gói cho thuộc tính balance (số dư) của lớp BankAccount, tại sao không nên cung cấp phương thức setBalance(double b) công khai?
Giải thích: Giải thích: Đóng gói không chỉ là che giấu dữ liệu mà còn là điều hướng tương tác qua các hàm nghiệp vụ để ngăn chặn các thay đổi dữ liệu vô lý hoặc sai quy trình,.
Câu 163. Trong kế thừa, từ khóa super (ví dụ: super.move()) được sử dụng nhằm mục đích gì?
Giải thích: Giải thích: Từ khóa super là cầu nối giúp lớp con truy xuất ngược lại các tài sản của lớp cha khi cần thiết, đặc biệt hữu ích khi phương thức đó đã bị ghi đè,.
Câu 164. Một thực thể (Instance) cụ thể được sinh ra từ khuôn mẫu của lớp, sở hữu các giá trị dữ liệu riêng biệt được gọi là gì?
Giải thích: Giải thích: Lớp là bản thiết kế, còn Đối tượng (Object) là thực thể thực tế chiếm không gian trong bộ nhớ và mang dữ liệu cụ thể,.
Câu 166. Khi thiết kế phương thức setter để gán tuổi cho nhân viên, tại sao tài liệu ví nó như một "Người gác cổng" (Gatekeeper)?
Giải thích: Giải thích: Setter là nơi thực thi các logic ràng buộc nghiệp vụ, đảm bảo đối tượng luôn ở trạng thái dữ liệu hợp lệ,.
Câu 170. Tại sao đa hình (Polymorphism) lại giúp hệ thống phần mềm tuân thủ nguyên lý Mở rộng (Open/Closed Principle)?
Giải thích: Giải thích: Nhờ đa hình lúc thực thi, mã nguồn ở tầng cao chỉ gọi các phương thức chung, còn việc thực thi cụ thể sẽ tự động điều hướng đến các mô-đun mới được thêm vào sau này,.
Câu 171. Một biến kiểu char chiếm 2 bytes trong bộ nhớ. Kiểu dữ liệu nào sau đây cũng chiếm đúng 2 bytes nhưng thuộc nhóm số nguyên?
Giải thích: Giải thích: Theo bảng tổng hợp kích thước ô nhớ, cả char (16-bit Unicode) và short (số nguyên nhỏ) đều chiếm dung lượng 2 bytes,.
Câu 173. Khi thiết kế lớp Staff (Nhân viên), tại sao thuộc tính baseSalary nên được khai báo là protected thay vì private nếu có các lớp con?
Giải thích: Giải thích: protected là mức độ truy cập trung gian, cho phép sự kế thừa diễn ra thuận lợi giữa cha và con trong khi vẫn đóng kín với môi trường bên ngoài,.
Câu 179. Một lớp khai báo là abstract nhưng KHÔNG chứa bất kỳ phương thức trừu tượng nào. Điều gì sau đây là đúng?
Giải thích: Giải thích: Việc khai báo abstract là một quyết định về mặt kiến trúc nhằm ngăn chặn việc tạo thực thể của một lớp được coi là "khái niệm", dù nó có chứa logic chia sẻ hay không,.
Câu 181. Trong mô hình hướng đối tượng, "Thuộc tính" (Fields) đóng vai trò gì đối với một thực thể?
Giải thích: Giải thích: Thuộc tính đại diện cho phần "tĩnh" (dữ liệu), còn phương thức đại diện cho phần "động" (hành vi) của đối tượng,.
Câu 185. Tại sao trong Case Study về thiết bị IoT (Smart Home), bộ não trung tâm nên quản lý danh sách SmartDevice[] thay vì danh sách các lớp cụ thể như Light[] hay Fan[]?
Giải thích: Giải thích: Đây là giá trị cốt lõi của tính trừu tượng và đa hình, giúp hệ thống có khả năng mở rộng (Scalability) và linh hoạt tối đa,.
Câu 186. Một biến được khai báo với từ khóa static bên trong một lớp (ví dụ: static int count;) có đặc điểm gì đặc biệt?
Giải thích: Giải thích: Biến static (biến lớp) đại diện cho những thông tin mang tính chất toàn cục của lớp đó, không phụ thuộc vào trạng thái riêng của từng thực thể,.
Câu 189. Điều gì xảy ra nếu một lớp thực thi một Interface nhưng chỉ viết code cho 2 trên tổng số 3 phương thức trừu tượng của Interface đó?
Giải thích: Giải thích: Interface là một bản hợp đồng toàn diện; nếu không thực hiện đầy đủ cam kết, lớp đó vẫn bị coi là "chưa hoàn chỉnh" (trừu tượng),.
Câu 190. Trong Case Study về phân cấp xe cộ, tại sao lớp con Car có thể truy cập được biến maxSpeed khai báo ở lớp ông nội Vehicle?
Giải thích: Giải thích: Kế thừa cho phép di sản từ lớp gốc lan truyền và tích tụ xuống tất cả các lớp ở tầng dưới,.
Câu 193. Trong Java, kiểu dữ liệu nào sau đây được phân loại vào nhóm "Kiểu dữ liệu tham chiếu"?
Giải thích: Giải thích: Khác với các kiểu nguyên thủy lưu giá trị trực tiếp, String là một đối tượng và nó lưu địa chỉ trỏ tới vùng nhớ Heap,.