Đề 3 – Đề 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

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

1. Adapter pattern là gì trong lập trình hướng đối tượng?

A. Một pattern để tạo ra các đối tượng một cách trực tiếp.
B. Một pattern để chuyển đổi giao diện của một lớp thành một giao diện khác mà client mong đợi.
C. Một pattern để quản lý bộ nhớ của các đối tượng.
D. Một pattern để tạo ra một đối tượng duy nhất.

2. Lợi ích chính của việc sử dụng polymorphism (đa hình) trong lập trình hướng đối tượng là gì?

A. Giảm dung lượng bộ nhớ sử dụng.
B. Tăng khả năng tái sử dụng mã và linh hoạt trong thiết kế.
C. Tăng tốc độ biên dịch chương trình.
D. Giảm độ phức tạp của thuật toán.

3. Trong lập trình hướng đối tượng, thuật ngữ `cohesion` (tính gắn kết) đề cập đến điều gì?

A. Mức độ mà các thành phần của một hệ thống phụ thuộc lẫn nhau.
B. Mức độ mà các phần tử bên trong một module liên quan đến nhau.
C. Tốc độ thực thi của chương trình.
D. Mức độ dễ dàng để hiểu và bảo trì mã.

4. Interface trong lập trình hướng đối tượng khác với lớp trừu tượng như thế nào?

A. Interface có thể chứa các thuộc tính, còn lớp trừu tượng thì không.
B. Interface có thể có các phương thức đã được triển khai, còn lớp trừu tượng thì không.
C. Một lớp có thể kế thừa nhiều interface, nhưng chỉ có thể kế thừa một lớp trừu tượng.
D. Interface không thể kế thừa từ interface khác.

5. Trong lập trình hướng đối tượng, thuật ngữ `coupling` (tính liên kết) đề cập đến điều gì?

A. Mức độ mà các thành phần của một hệ thống phụ thuộc lẫn nhau.
B. Khả năng tái sử dụng mã trong các dự án khác nhau.
C. Tốc độ thực thi của chương trình.
D. Mức độ dễ dàng để hiểu và bảo trì mã.

6. Tác dụng của việc sử dụng access modifiers (public, private, protected) trong lập trình hướng đối tượng là gì?

A. Để tăng tốc độ thực thi chương trình.
B. Để quản lý bộ nhớ hiệu quả hơn.
C. Để kiểm soát quyền truy cập vào các thành viên của lớp (thuộc tính và phương thức).
D. Để tạo ra các đối tượng có kích thước nhỏ hơn.

7. Đâu là sự khác biệt chính giữa Overloading (nạp chồng) và Overriding (ghi đè) trong lập trình hướng đối tượng?

A. Overloading là việc tạo nhiều phương thức cùng tên trong cùng một lớp với tham số khác nhau, còn Overriding là việc định nghĩa lại phương thức của lớp cha ở lớp con.
B. Overloading là việc định nghĩa lại phương thức của lớp cha ở lớp con, còn Overriding là việc tạo nhiều phương thức cùng tên trong cùng một lớp với tham số khác nhau.
C. Overloading chỉ áp dụng cho các phương thức tĩnh, còn Overriding chỉ áp dụng cho các phương thức không tĩnh.
D. Overloading chỉ áp dụng cho các lớp con, còn Overriding chỉ áp dụng cho các lớp cha.

8. Phương thức nào sau đây được gọi tự động khi một đối tượng được tạo ra?

A. Destructor
B. Constructor
C. Getter
D. Setter

9. Phương thức nào sau đây được gọi tự động khi một đối tượng bị hủy?

A. Constructor
B. Destructor
C. Getter
D. Setter

10. Phương pháp nào giúp che giấu thông tin bên trong của một đối tượng và chỉ cho phép truy cập thông qua các phương thức công khai?

A. Đa hình
B. Kế thừa
C. Đóng gói
D. Trừu tượng

11. Factory pattern là gì trong lập trình hướng đối tượng?

A. Một pattern để tạo ra các đối tượng một cách trực tiếp.
B. Một pattern để tạo ra một đối tượng duy nhất.
C. Một pattern để tạo ra các đối tượng mà không cần chỉ định lớp cụ thể của đối tượng được tạo.
D. Một pattern để quản lý bộ nhớ của các đối tượng.

12. Mục đích chính của việc sử dụng tính đóng gói trong lập trình hướng đối tượng là gì?

A. Tăng tốc độ thực thi chương trình.
B. Giảm dung lượng bộ nhớ sử dụng.
C. Bảo vệ dữ liệu của đối tượng khỏi bị truy cập và sửa đổi trực tiếp từ bên ngoài.
D. Cho phép tạo ra nhiều đối tượng cùng lúc.

13. Trong ngữ cảnh của lập trình hướng đối tượng, `is-a` relationship (mối quan hệ `là một`) thể hiện khái niệm nào?

A. Đóng gói
B. Kế thừa
C. Đa hình
D. Trừu tượng

14. Proxy pattern là gì trong lập trình hướng đối tượng?

A. Một pattern để tạo ra các đối tượng một cách trực tiếp.
B. Một pattern để cung cấp một đối tượng đại diện cho một đối tượng khác để kiểm soát quyền truy cập vào nó.
C. Một pattern để quản lý bộ nhớ của các đối tượng.
D. Một pattern để tạo ra một đối tượng duy nhất.

15. SOLID là một tập hợp các nguyên tắc thiết kế quan trọng trong lập trình hướng đối tượng. Chữ `S` trong SOLID đại diện cho nguyên tắc nào?

A. Single Responsibility Principle
B. Separation of Concerns
C. Simplify
D. Standardization

16. Trong lập trình hướng đối tượng, thuộc tính (attribute) của một lớp đại diện cho điều gì?

A. Hành vi của đối tượng.
B. Trạng thái của đối tượng.
C. Các phương thức mà đối tượng có thể gọi.
D. Mối quan hệ giữa các đối tượng.

17. Trong lập trình hướng đối tượng, khái niệm nào cho phép một lớp kế thừa các thuộc tính và phương thức từ một lớp khác?

A. Đóng gói
B. Kế thừa
C. Đa hình
D. Trừu tượng

18. Trong ngữ cảnh của lập trình hướng đối tượng, `has-a` relationship (mối quan hệ `có một`) thể hiện khái niệm nào?

A. Đóng gói
B. Kế thừa
C. Quan hệ kết hợp (Association)
D. Đa hình

19. Trong lập trình hướng đối tượng, từ khóa `static` được sử dụng để làm gì?

A. Tạo ra một đối tượng mới.
B. Khai báo một hằng số.
C. Chỉ định rằng một biến hoặc phương thức thuộc về lớp chứ không phải đối tượng.
D. Cho phép ghi đè một phương thức.

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

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

21. Khi nào nên sử dụng abstract class thay vì interface trong thiết kế hướng đối tượng?

A. Khi bạn muốn định nghĩa một contract (hợp đồng) mà các lớp phải tuân theo, nhưng không muốn cung cấp bất kỳ triển khai mặc định nào.
B. Khi bạn muốn cung cấp một số triển khai mặc định cho các lớp con và muốn cho phép các lớp con kế thừa trạng thái (thuộc tính).
C. Khi bạn muốn đảm bảo rằng một lớp chỉ có một thể hiện duy nhất.
D. Khi bạn muốn tăng tốc độ thực thi của chương trình.

22. Singleton pattern là gì trong lập trình hướng đối tượng?

A. Một pattern tạo ra nhiều đối tượng từ một lớp.
B. Một pattern đảm bảo rằng một lớp chỉ có một đối tượng duy nhất và cung cấp một điểm truy cập toàn cục đến đối tượng đó.
C. Một pattern để tạo ra các đối tượng có thuộc tính giống nhau.
D. Một pattern để quản lý bộ nhớ của các đối tượng.

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

A. Composition là một dạng yếu hơn của Aggregation.
B. Aggregation là một dạng yếu hơn của Composition.
C. Trong Composition, đối tượng chứa không thể tồn tại nếu không có đối tượng được chứa, trong khi Aggregation thì ngược lại.
D. Trong Aggregation, đối tượng chứa không thể tồn tại nếu không có đối tượng được chứa, trong khi Composition thì ngược lại.

24. Nguyên tắc Dependency Inversion trong SOLID nói về điều gì?

A. Các module cấp cao không nên phụ thuộc vào các module cấp thấp, cả hai nên phụ thuộc vào abstraction.
B. Các lớp con nên có khả năng thay thế các lớp cha của chúng.
C. Một lớp chỉ nên có một lý do để thay đổi.
D. Các interface nên nhỏ gọn và tập trung vào một mục đích cụ thể.

25. Yếu tố nào sau đây không phải là một trong bốn trụ cột chính của lập trình hướng đối tượng?

A. Đóng gói
B. Kế thừa
C. Đa hình
D. Phân tách

26. Phương thức (method) trong lập trình hướng đối tượng đại diện cho điều gì?

A. Dữ liệu mà đối tượng lưu trữ.
B. Hành vi mà đối tượng có thể thực hiện.
C. Kiểu dữ liệu của đối tượng.
D. Kích thước bộ nhớ mà đối tượng chiếm.

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

A. Giảm thiểu việc sử dụng bộ nhớ.
B. Tăng khả năng tái sử dụng mã và giảm sự trùng lặp.
C. Tăng tốc độ biên dịch chương trình.
D. Giảm độ phức tạp của thuật toán.

28. Decorator pattern là gì trong lập trình hướng đối tượng?

A. Một pattern để tạo ra các đối tượng một cách tuần tự.
B. Một pattern để thêm các trách nhiệm mới vào một đối tượng một cách động.
C. Một pattern để quản lý bộ nhớ của các đối tượng.
D. Một pattern để tạo ra một đối tượng duy nhất.

29. SOLID là một tập hợp các nguyên tắc thiết kế quan trọng trong lập trình hướng đối tượng. Chữ `L` trong SOLID đại diện cho nguyên tắc nào?

A. Liskov Substitution Principle
B. Loose Coupling
C. Law of Demeter
D. Least Astonishment

30. Khái niệm nào cho phép các đối tượng thuộc các lớp khác nhau phản ứng khác nhau với cùng một phương thức gọi?

A. Kế thừa
B. Đóng gói
C. Đa hình
D. Trừu tượng

1 / 30

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

Tags: Bộ đề 3

1. Adapter pattern là gì trong lập trình hướng đối tượng?

2 / 30

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

Tags: Bộ đề 3

2. Lợi ích chính của việc sử dụng polymorphism (đa hình) trong lập trình hướng đối tượng là gì?

3 / 30

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

Tags: Bộ đề 3

3. Trong lập trình hướng đối tượng, thuật ngữ 'cohesion' (tính gắn kết) đề cập đến điều gì?

4 / 30

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

Tags: Bộ đề 3

4. Interface trong lập trình hướng đối tượng khác với lớp trừu tượng như thế nào?

5 / 30

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

Tags: Bộ đề 3

5. Trong lập trình hướng đối tượng, thuật ngữ 'coupling' (tính liên kết) đề cập đến điều gì?

6 / 30

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

Tags: Bộ đề 3

6. Tác dụng của việc sử dụng access modifiers (public, private, protected) trong lập trình hướng đối tượng là gì?

7 / 30

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

Tags: Bộ đề 3

7. Đâu là sự khác biệt chính giữa Overloading (nạp chồng) và Overriding (ghi đè) trong lập trình hướng đối tượng?

8 / 30

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

Tags: Bộ đề 3

8. Phương thức nào sau đây được gọi tự động khi một đối tượng được tạo ra?

9 / 30

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

Tags: Bộ đề 3

9. Phương thức nào sau đây được gọi tự động khi một đối tượng bị hủy?

10 / 30

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

Tags: Bộ đề 3

10. Phương pháp nào giúp che giấu thông tin bên trong của một đối tượng và chỉ cho phép truy cập thông qua các phương thức công khai?

11 / 30

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

Tags: Bộ đề 3

11. Factory pattern là gì trong lập trình hướng đối tượng?

12 / 30

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

Tags: Bộ đề 3

12. Mục đích chính của việc sử dụng tính đóng gói trong lập trình hướng đối tượng là gì?

13 / 30

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

Tags: Bộ đề 3

13. Trong ngữ cảnh của lập trình hướng đối tượng, 'is-a' relationship (mối quan hệ 'là một') thể hiện khái niệm nào?

14 / 30

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

Tags: Bộ đề 3

14. Proxy pattern là gì trong lập trình hướng đối tượng?

15 / 30

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

Tags: Bộ đề 3

15. SOLID là một tập hợp các nguyên tắc thiết kế quan trọng trong lập trình hướng đối tượng. Chữ 'S' trong SOLID đại diện cho nguyên tắc nào?

16 / 30

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

Tags: Bộ đề 3

16. Trong lập trình hướng đối tượng, thuộc tính (attribute) của một lớp đại diện cho điều gì?

17 / 30

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

Tags: Bộ đề 3

17. Trong lập trình hướng đối tượng, khái niệm nào cho phép một lớp kế thừa các thuộc tính và phương thức từ một lớp khác?

18 / 30

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

Tags: Bộ đề 3

18. Trong ngữ cảnh của lập trình hướng đối tượng, 'has-a' relationship (mối quan hệ 'có một') thể hiện khái niệm nào?

19 / 30

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

Tags: Bộ đề 3

19. Trong lập trình hướng đối tượng, từ khóa 'static' được sử dụng để làm gì?

20 / 30

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

Tags: Bộ đề 3

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

21 / 30

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

Tags: Bộ đề 3

21. Khi nào nên sử dụng abstract class thay vì interface trong thiết kế hướng đối tượng?

22 / 30

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

Tags: Bộ đề 3

22. Singleton pattern là gì trong lập trình hướng đối tượng?

23 / 30

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

Tags: Bộ đề 3

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

24 / 30

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

Tags: Bộ đề 3

24. Nguyên tắc Dependency Inversion trong SOLID nói về điều gì?

25 / 30

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

Tags: Bộ đề 3

25. Yếu tố nào sau đây không phải là một trong bốn trụ cột chính của lập trình hướng đối tượng?

26 / 30

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

Tags: Bộ đề 3

26. Phương thức (method) trong lập trình hướng đối tượng đại diện cho điều gì?

27 / 30

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

Tags: Bộ đề 3

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

28 / 30

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

Tags: Bộ đề 3

28. Decorator pattern là gì trong lập trình hướng đối tượng?

29 / 30

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

Tags: Bộ đề 3

29. SOLID là một tập hợp các nguyên tắc thiết kế quan trọng trong lập trình hướng đối tượng. Chữ 'L' trong SOLID đại diện cho nguyên tắc nào?

30 / 30

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

Tags: Bộ đề 3

30. Khái niệm nào cho phép các đối tượng thuộc các lớp khác nhau phản ứng khác nhau với cùng một phương thức gọi?