Đề thi, bài tập trắc nghiệm online Lập trình hướng đối tượng – Đề 1

Đề 1 - Bài tập, đề thi trắc nghiệm online Lập trình hướng đối tượng

1. Mục đích của việc sử dụng 'design patterns' (mẫu thiết kế) trong lập trình hướng đối tượng là gì?
2. Quan hệ 'tổng hợp' (aggregation) khác với quan hệ 'hợp thành' (composition) chủ yếu ở điểm nào?
3. Nguyên tắc cơ bản nào của lập trình hướng đối tượng (OOP) cho phép các đối tượng thuộc các lớp khác nhau phản ứng theo những cách khác nhau đối với cùng một thông điệp hoặc lệnh gọi phương thức?
4. Điều gì KHÔNG phải là một đặc điểm chính của lập trình hướng đối tượng?
5. Trong OOP, 'đa kế thừa' (multiple inheritance) có thể gây ra vấn đề gì?
6. Trong OOP, 'lớp' (class) được xem như là:
7. Trong OOP, 'tính đa hình nạp chồng' (method overloading) xảy ra khi nào?
8. Nguyên tắc 'Phân tách giao diện' (Interface Segregation Principle - ISP) trong SOLID khuyến nghị điều gì?
9. Nguyên tắc 'Mở - Đóng' (Open/Closed Principle - OCP) trong SOLID phát biểu rằng:
10. Phương thức khởi tạo (constructor) trong một lớp OOP có vai trò chính là gì?
11. Điều gì KHÔNG phải là lợi ích chính của việc sử dụng lập trình hướng đối tượng?
12. Trong OOP, 'phạm vi truy cập' (access modifier) 'protected' có ý nghĩa gì?
13. Trong OOP, 'đa hình tham số' (parameterized polymorphism hoặc generics) cho phép điều gì?
14. Trong OOP, 'phương thức trừu tượng' (abstract method) là gì?
15. Điều gì xảy ra khi một lớp con 'ghi đè' (override) một phương thức của lớp cha?
16. Từ khóa 'super' (hoặc tương đương trong ngôn ngữ khác) thường được sử dụng trong lớp con để làm gì?
17. Khi nào nên sử dụng 'composition' (hợp thành) thay vì 'inheritance' (kế thừa) trong thiết kế OOP?
18. Trong ngữ cảnh của tính kế thừa (inheritance), lớp 'con' (child class hoặc subclass) KHÔNG được kế thừa điều gì từ lớp 'cha' (parent class hoặc superclass)?
19. Mục đích chính của việc sử dụng 'tính trừu tượng' (abstraction) trong OOP là gì?
20. Trong các nguyên tắc SOLID, nguyên tắc 'Nguyên tắc đảo ngược phụ thuộc' (Dependency Inversion Principle - DIP) khuyến khích điều gì?
21. Nguyên tắc 'Nguyên tắc thay thế Liskov' (Liskov Substitution Principle - LSP) trong SOLID nói về điều gì?
22. Trong OOP, 'phân lớp' (subtyping) và 'kế thừa' (inheritance) có mối quan hệ như thế nào?
23. Khái niệm 'tính đóng gói' (encapsulation) trong OOP chủ yếu nhằm mục đích gì?
24. Khái niệm 'phương thức truy cập' (accessor method) và 'phương thức biến đổi' (mutator method) thường được sử dụng để làm gì trong OOP?
25. Thuộc tính hoặc phương thức 'tĩnh' (static) trong OOP có đặc điểm gì?
26. Lỗi 'Null Pointer Exception' (hoặc tương đương trong các ngôn ngữ khác) thường xảy ra trong OOP khi nào?
27. Trong OOP, 'giao diện' (interface) khác với 'lớp trừu tượng' (abstract class) chủ yếu ở điểm nào?
28. Phương thức 'ảo' (virtual method) trong OOP (ví dụ trong C++) chủ yếu liên quan đến khái niệm nào?
29. Ưu điểm chính của việc sử dụng 'tính đóng gói' (encapsulation) trong phát triển phần mềm là gì?
30. Quan hệ 'kết hợp' (association) giữa các lớp trong OOP thể hiện điều gì?