Đề 4 – Đề thi, câu hỏi trắc nghiệm online Lập trình hướng đối tượng

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Lập trình hướng đối tượng

Đề 4 - Đề thi, câu hỏi trắc nghiệm online Lập trình hướng đối tượng

1. Đâu là một ví dụ về Structural Design Pattern (mẫu thiết kế cấu trúc)?

A. Factory Method.
B. Observer.
C. Adapter.
D. Command.

2. Trong lập trình hướng đối tượng, `lớp` (class) được hiểu là gì?

A. Một thể hiện cụ thể của một đối tượng.
B. Một kiểu dữ liệu nguyên thủy.
C. Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng.
D. Một hàm hoặc thủ tục trong chương trình.

3. Trong lập trình hướng đối tượng, tính đóng gói (encapsulation) thể hiện điều gì?

A. Khả năng một đối tượng có thể thuộc nhiều lớp khác nhau.
B. Cơ chế ẩn giấu thông tin và bảo vệ dữ liệu của đối tượng khỏi sự truy cập trực tiếp từ bên ngoài.
C. Khả năng một lớp có thể kế thừa các thuộc tính và phương thức từ một hoặc nhiều lớp khác.
D. Khả năng một phương thức có thể thực hiện các hành động khác nhau tùy thuộc vào kiểu dữ liệu của đối tượng mà nó tác động.

4. Nguyên tắc `Liskov Substitution Principle` (LSP) trong thiết kế hướng đối tượng nói về điều gì?

A. Các lớp con phải có thể thay thế cho lớp cha của chúng mà không làm thay đổi tính đúng đắn của chương trình.
B. Mỗi lớp chỉ nên có một trách nhiệm duy nhất.
C. Các đối tượng nên mở cho việc mở rộng nhưng đóng cho việc sửa đổi.
D. Phụ thuộc vào các trừu tượng, không phụ thuộc vào các cài đặt cụ thể.

5. Phương thức hủy bỏ (destructor) trong lập trình hướng đối tượng có vai trò gì?

A. Khởi tạo các thuộc tính của một đối tượng.
B. Truy cập các thuộc tính của một đối tượng.
C. Giải phóng bộ nhớ và tài nguyên mà đối tượng chiếm giữ khi nó không còn được sử dụng.
D. Thay đổi kiểu dữ liệu của một đối tượng.

6. SOLID là viết tắt của những nguyên tắc thiết kế hướng đối tượng nào?

A. Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion.
B. Simple, Obvious, Logical, Intuitive, Detailed.
C. Structured, Organized, লিঙ্কড, Integrated, Dynamic.
D. Safe, Optimized, লিঙ্কড, Independent, Dependable.

7. Phương thức trừu tượng (abstract method) trong lập trình hướng đối tượng là gì?

A. Một phương thức không có tham số.
B. Một phương thức được định nghĩa trong một lớp trừu tượng và không có phần thân (body).
C. Một phương thức không thể được ghi đè (override) trong các lớp con.
D. Một phương thức được sử dụng để tạo ra các đối tượng trừu tượng.

8. Sự khác biệt giữa Composition và Aggregation thể hiện rõ nhất qua yếu tố nào?

A. Khả năng tái sử dụng mã.
B. Quyền sở hữu và vòng đời của các đối tượng thành phần.
C. Mức độ trừu tượng của các lớp.
D. Số lượng tham số trong phương thức.

9. Sự khác biệt chính giữa lớp trừu tượng (abstract class) và giao diện (interface) trong lập trình hướng đối tượng là gì?

A. Lớp trừu tượng có thể chứa các thuộc tính, trong khi giao diện thì không.
B. Giao diện có thể chứa các phương thức trừu tượng, trong khi lớp trừu tượng thì không.
C. Một lớp có thể kế thừa từ nhiều lớp trừu tượng, trong khi chỉ có thể triển khai một giao diện.
D. Một lớp có thể triển khai nhiều giao diện, trong khi chỉ có thể kế thừa từ một lớp trừu tượng.

10. Trong lập trình hướng đối tượng, `tính trừu tượng` (abstraction) là gì?

A. Khả năng tạo ra các đối tượng ảo.
B. Quá trình ẩn giấu các chi tiết phức tạp và chỉ hiển thị các thông tin cần thiết của đối tượng.
C. Khả năng tạo ra các lớp trừu tượng mà không cần định nghĩa phương thức.
D. Quá trình tạo ra các đối tượng có kích thước nhỏ.

11. Design Pattern (mẫu thiết kế) trong lập trình hướng đối tượng là gì?

A. Một cách để viết mã nhanh hơn.
B. Một giải pháp đã được kiểm chứng cho một vấn đề thiết kế thường gặp.
C. Một công cụ để tự động tạo mã.
D. Một kiểu dữ liệu đặc biệt.

12. Phương thức khởi tạo (constructor) trong lập trình hướng đối tượng có vai trò gì?

A. Hủy bỏ một đối tượng khi nó không còn được sử dụng.
B. Khởi tạo các thuộc tính của một đối tượng khi nó được tạo ra.
C. Truy cập các thuộc tính của một đối tượng.
D. Thay đổi kiểu dữ liệu của một đối tượng.

13. Lớp trừu tượng (abstract class) trong lập trình hướng đối tượng là gì?

A. Một lớp không thể được kế thừa.
B. Một lớp chỉ chứa các thuộc tính.
C. Một lớp không thể được tạo ra các đối tượng (thể hiện) trực tiếp.
D. Một lớp chỉ chứa các phương thức tĩnh.

14. Đâu là một ví dụ về Behavioral Design Pattern (mẫu thiết kế hành vi)?

A. Abstract Factory.
B. Bridge.
C. Decorator.
D. Observer.

15. Trong lập trình hướng đối tượng, mối quan hệ `has-a` thường được thể hiện bằng cơ chế nào?

A. Tính đóng gói.
B. Tính kế thừa.
C. Tính đa hình.
D. Tính kết hợp (composition) hoặc tập hợp (aggregation).

16. Phương thức (method) trong lập trình hướng đối tượng là gì?

A. Một thuộc tính của một đối tượng.
B. Một hàm hoặc thủ tục được định nghĩa bên trong một lớp và thực hiện các hành động trên đối tượng của lớp đó.
C. Một biến cục bộ trong một hàm.
D. Một kiểu dữ liệu phức hợp.

17. Sự khác biệt chính giữa tính kết hợp (composition) và tính tập hợp (aggregation) trong lập trình hướng đối tượng là gì?

A. Tính kết hợp là một dạng của tính kế thừa, trong khi tính tập hợp là một dạng của tính đa hình.
B. Trong tính kết hợp, đối tượng chứa chịu trách nhiệm cho vòng đời của đối tượng được chứa, trong khi trong tính tập hợp thì không.
C. Tính kết hợp cho phép truy cập trực tiếp vào các thuộc tính của đối tượng được chứa, trong khi tính tập hợp thì không.
D. Tính kết hợp chỉ áp dụng cho các đối tượng có cùng kiểu dữ liệu, trong khi tính tập hợp thì không.

18. Đâu là lợi ích chính của việc sử dụng tính kế thừa trong lập trình hướng đối tượng?

A. Giảm thiểu sử dụng bộ nhớ.
B. Tăng tốc độ thực thi chương trình.
C. Cho phép tái sử dụng mã nguồn và xây dựng hệ thống phân cấp lớp.
D. Cải thiện khả năng tương thích với các hệ điều hành khác nhau.

19. Đối tượng (object) trong lập trình hướng đối tượng là gì?

A. Một bản thiết kế để tạo ra các lớp.
B. Một biến toàn cục trong chương trình.
C. Một thể hiện cụ thể của một lớp, có trạng thái và hành vi.
D. Một hàm được sử dụng để tạo ra các lớp.

20. Tính đa hình (polymorphism) trong lập trình hướng đối tượng cho phép điều gì?

A. Tạo ra các đối tượng có kích thước khác nhau.
B. Một đối tượng có thể có nhiều thuộc tính khác nhau.
C. Một phương thức có thể thực hiện các hành động khác nhau tùy thuộc vào kiểu dữ liệu của đối tượng mà nó tác động.
D. Các lớp có thể có nhiều phương thức khởi tạo khác nhau.

21. Trong lập trình hướng đối tượng, khi nào nên sử dụng Composition thay vì Inheritance?

A. Khi cần tái sử dụng mã nguồn một cách đơn giản.
B. Khi muốn tạo ra một hệ thống phân cấp lớp phức tạp.
C. Khi muốn tránh các vấn đề liên quan đến `fragile base class` và tăng tính linh hoạt.
D. Khi cần truy cập trực tiếp vào các thuộc tính của lớp cha.

22. Ưu điểm của việc sử dụng Dependency Injection (DI) trong lập trình hướng đối tượng là gì?

A. Giảm sự phụ thuộc giữa các lớp, tăng tính tái sử dụng và dễ kiểm thử.
B. Tăng tốc độ thực thi chương trình.
C. Giảm thiểu sử dụng bộ nhớ.
D. Cải thiện khả năng tương thích với các hệ điều hành khác nhau.

23. Trong lập trình hướng đối tượng, mối quan hệ `is-a` thường được thể hiện bằng cơ chế nào?

A. Tính đóng gói.
B. Tính kế thừa.
C. Tính đa hình.
D. Tính trừu tượng.

24. Thuộc tính (attribute) trong lập trình hướng đối tượng là gì?

A. Một hàm hoặc thủ tục được định nghĩa bên trong một lớp.
B. Một đặc điểm hoặc dữ liệu mô tả trạng thái của một đối tượng.
C. Một kiểu dữ liệu nguyên thủy.
D. Một biến toàn cục trong chương trình.

25. Trong lập trình hướng đối tượng, `nạp chồng phương thức` (method overloading) là gì?

A. Việc định nghĩa lại một phương thức đã có trong lớp cha trong một lớp con.
B. Việc tạo ra nhiều phương thức với cùng tên nhưng khác tham số trong cùng một lớp.
C. Việc ẩn giấu một phương thức trong lớp cha.
D. Việc gọi một phương thức từ một lớp khác.

26. Đâu là một nguyên tắc quan trọng trong thiết kế hướng đối tượng (Object-Oriented Design Principles)?

A. Viết mã càng phức tạp càng tốt.
B. Sử dụng càng nhiều biến toàn cục càng tốt.
C. Nguyên tắc Single Responsibility Principle (SRP): Mỗi lớp chỉ nên có một trách nhiệm duy nhất.
D. Tất cả các lớp nên phụ thuộc lẫn nhau.

27. Đâu là một ví dụ về Creational Design Pattern (mẫu thiết kế khởi tạo)?

A. Singleton.
B. Observer.
C. Strategy.
D. Template Method.

28. Nguyên tắc `Dependency Inversion Principle` (DIP) trong thiết kế hướng đối tượng khuyến khích điều gì?

A. Các lớp con phải có thể thay thế cho lớp cha của chúng.
B. Mỗi lớp chỉ nên có một trách nhiệm duy nhất.
C. Các đối tượng nên mở cho việc mở rộng nhưng đóng cho việc sửa đổi.
D. Phụ thuộc vào các trừu tượng, không phụ thuộc vào các cài đặt cụ thể.

29. Trong lập trình hướng đối tượng, `ghi đè phương thức` (method overriding) là gì?

A. Việc tạo ra một phương thức mới với cùng tên và tham số trong một lớp con.
B. Việc định nghĩa lại một phương thức đã có trong lớp cha trong một lớp con.
C. Việc ẩn giấu một phương thức trong lớp cha.
D. Việc gọi một phương thức từ một lớp khác.

30. Giao diện (interface) trong lập trình hướng đối tượng là gì?

A. Một lớp chỉ chứa các thuộc tính.
B. Một lớp chỉ chứa các phương thức tĩnh.
C. Một bản thiết kế chỉ định các phương thức mà một lớp phải triển khai.
D. Một lớp không thể được kế thừa.

1 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

1. Đâu là một ví dụ về Structural Design Pattern (mẫu thiết kế cấu trúc)?

2 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

2. Trong lập trình hướng đối tượng, 'lớp' (class) được hiểu là gì?

3 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

3. Trong lập trình hướng đối tượng, tính đóng gói (encapsulation) thể hiện điều gì?

4 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

4. Nguyên tắc 'Liskov Substitution Principle' (LSP) trong thiết kế hướng đối tượng nói về điều gì?

5 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

5. Phương thức hủy bỏ (destructor) trong lập trình hướng đối tượng có vai trò gì?

6 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

6. SOLID là viết tắt của những nguyên tắc thiết kế hướng đối tượng nào?

7 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

7. Phương thức trừu tượng (abstract method) trong lập trình hướng đối tượng là gì?

8 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

8. Sự khác biệt giữa Composition và Aggregation thể hiện rõ nhất qua yếu tố nào?

9 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

9. Sự khác biệt chính giữa lớp trừu tượng (abstract class) và giao diện (interface) trong lập trình hướng đối tượng là gì?

10 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

10. Trong lập trình hướng đối tượng, 'tính trừu tượng' (abstraction) là gì?

11 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

11. Design Pattern (mẫu thiết kế) trong lập trình hướng đối tượng là gì?

12 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

12. Phương thức khởi tạo (constructor) trong lập trình hướng đối tượng có vai trò gì?

13 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

13. Lớp trừu tượng (abstract class) trong lập trình hướng đối tượng là gì?

14 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

14. Đâu là một ví dụ về Behavioral Design Pattern (mẫu thiết kế hành vi)?

15 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

15. Trong lập trình hướng đối tượng, mối quan hệ 'has-a' thường được thể hiện bằng cơ chế nào?

16 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

16. Phương thức (method) trong lập trình hướng đối tượng là gì?

17 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

17. Sự khác biệt chính giữa tính kết hợp (composition) và tính tập hợp (aggregation) trong lập trình hướng đối tượng là gì?

18 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

18. Đâu là lợi ích chính của việc sử dụng tính kế thừa trong lập trình hướng đối tượng?

19 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

19. Đối tượng (object) trong lập trình hướng đối tượng là gì?

20 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

20. Tính đa hình (polymorphism) trong lập trình hướng đối tượng cho phép điều gì?

21 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

21. Trong lập trình hướng đối tượng, khi nào nên sử dụng Composition thay vì Inheritance?

22 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

22. Ưu điểm của việc sử dụng Dependency Injection (DI) trong lập trình hướng đối tượng là gì?

23 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

23. Trong lập trình hướng đối tượng, mối quan hệ 'is-a' thường được thể hiện bằng cơ chế nào?

24 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

24. Thuộc tính (attribute) trong lập trình hướng đối tượng là gì?

25 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

25. Trong lập trình hướng đối tượng, 'nạp chồng phương thức' (method overloading) là gì?

26 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

26. Đâu là một nguyên tắc quan trọng trong thiết kế hướng đối tượng (Object-Oriented Design Principles)?

27 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

27. Đâu là một ví dụ về Creational Design Pattern (mẫu thiết kế khởi tạo)?

28 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

28. Nguyên tắc 'Dependency Inversion Principle' (DIP) trong thiết kế hướng đối tượng khuyến khích điều gì?

29 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

29. Trong lập trình hướng đối tượng, 'ghi đè phương thức' (method overriding) là gì?

30 / 30

Category: Lập trình hướng đối tượng

Tags: Bộ đề 4

30. Giao diện (interface) trong lập trình hướng đối tượng là gì?