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

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

1. Hạn chế chính của việc sử dụng đa kế thừa (multiple inheritance) là gì?
2. Nguyên tắc `Dependency Inversion Principle′ (DIP) trong SOLID khuyến khích điều gì?
3. Lớp trừu tượng (abstract class) khác với lớp thông thường ở điểm nào?
4. Tính trừu tượng (abstraction) trong OOP tập trung vào điều gì?
5. Tính trừu tượng hóa dữ liệu (data abstraction) khác với tính đóng gói (encapsulation) như thế nào?
6. Phương thức `static′ trong OOP có đặc điểm gì?
7. Trong mô hình hướng đối tượng, `đối tượng′ thường được xem là sự kết hợp của những yếu tố nào?
8. Từ khóa `super′ thường được sử dụng để làm gì trong ngữ cảnh kế thừa?
9. Trong lập trình hướng đối tượng, `đa hình′ (polymorphism) thường được thể hiện qua hình thức nào?
10. Trong lập trình hướng đối tượng, `message passing′ đề cập đến điều gì?
11. Khi nào thì nên sử dụng lớp `final′ trong OOP?
12. Phương thức trừu tượng (abstract method) là gì?
13. SOLID là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ `L′ trong SOLID đại diện cho nguyên tắc nào?
14. Ví dụ nào sau đây thể hiện rõ nhất tính đa hình (polymorphism) trong thực tế?
15. Nguyên tắc `Open∕Closed Principle′ (OCP) trong SOLID phát biểu rằng:
16. Tính kế thừa (inheritance) trong lập trình hướng đối tượng mang lại lợi ích nào sau đây?
17. Mục đích chính của việc sử dụng `design patterns′ (mẫu thiết kế) trong OOP là gì?
18. Trong lập trình hướng đối tượng, `class′ và `object′ có mối quan hệ như thế nào?
19. Ưu điểm chính của tính đóng gói (encapsulation) trong lập trình hướng đối tượng là gì?
20. Khi nào thì nên sử dụng `composition′ thay vì `inheritance′ trong thiết kế OOP?
21. Khái niệm nào sau đây của lập trình hướng đối tượng cho phép một đối tượng thuộc lớp con có thể hành xử khác nhau tùy thuộc vào ngữ cảnh, mặc dù cùng được gọi bằng một phương thức?
22. Trong lập trình hướng đối tượng, `phương thức ảo′ (virtual method) liên quan mật thiết đến khái niệm nào?
23. Điểm khác biệt chính giữa `is-a′ và `has-a′ relationship trong OOP là gì?
24. Trong ngữ cảnh của OOP, thuật ngữ `coupling′ (kết nối) và `cohesion′ (kết dính) được hiểu như thế nào?
25. Mục tiêu của việc thiết kế hướng đối tượng là gì?
26. Tại sao lập trình hướng đối tượng thường được ưu tiên hơn lập trình hướng thủ tục trong các dự án phần mềm lớn và phức tạp?
27. Phương thức khởi tạo (constructor) trong một lớp được sử dụng để làm gì?
28. Khi thiết kế một hệ thống OOP, việc xác định lớp và trách nhiệm của mỗi lớp là bước quan trọng trong giai đoạn nào?
29. Ưu điểm của việc sử dụng interface so với lớp trừu tượng trong một số trường hợp là gì?
30. Interface (giao diện) trong lập trình hướng đối tượng có vai trò gì?