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

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

1. Trong lập trình hướng đối tượng, `inheritance` (tính kế thừa) giúp làm gì?

A. Cho phép tạo ra các lớp mới dựa trên các lớp đã có, tái sử dụng mã và thiết lập mối quan hệ `is-a`.
B. Cho phép ẩn giấu các chi tiết phức tạp của đối tượng.
C. Cho phép một đối tượng thuộc nhiều lớp khác nhau.
D. Cho phép một lớp có nhiều phương thức cùng tên.

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

A. Lớp trừu tượng có thể chứa các phương thức đã được triển khai, trong khi interface chỉ chứa các phương thức trừu tượng.
B. Interface có thể chứa các phương thức đã được triển khai, trong khi lớp trừu tượng chỉ chứa các phương thức trừu tượng.
C. Lớp trừu tượng có thể kế thừa từ nhiều lớp khác nhau, trong khi interface chỉ có thể kế thừa từ một lớp.
D. Interface có thể kế thừa từ nhiều lớp khác nhau, trong khi lớp trừu tượng chỉ có thể kế thừa từ một lớp.

3. Lớp trừu tượng (abstract class) là gì?

A. Một lớp không thể tạo ra các đối tượng trực tiếp và thường chứa các phương thức trừu tượng.
B. Một lớp có thể tạo ra các đối tượng trực tiếp và không chứa các phương thức trừu tượng.
C. Một lớp được sử dụng để thực hiện các phép toán số học.
D. Một lớp được sử dụng để lưu trữ dữ liệu.

4. Trong lập trình hướng đối tượng, `encapsulation` (tính đóng gói) giúp làm gì?

A. 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 và che giấu các chi tiết triển khai.
B. Cho phép tạo ra các lớp mới từ các lớp đã có.
C. Cho phép một đối tượng thuộc nhiều lớp khác nhau.
D. Cho phép một lớp có nhiều phương thức cùng tên.

5. Trong lập trình hướng đối tượng, `composition` (tính hợp thành) là gì?

A. Một cách để xây dựng các đối tượng phức tạp từ các đối tượng đơn giản hơn, trong đó một đối tượng chứa các đối tượng khác như là các thành phần của nó.
B. Một cách để tạo ra các lớp mới từ các lớp đã có.
C. Một cách để ẩn giấu các chi tiết triển khai của đối tượng.
D. Một cách để cho phép một đối tượng thuộc nhiều lớp khác nhau.

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

A. Tạo ra các thuộc tính hoặc phương thức thuộc về lớp chứ không phải đối tượng cụ thể.
B. Cho phép một lớp kế thừa từ nhiều lớp khác nhau.
C. Ẩn giấu các chi tiết triển khai của đối tượng.
D. Cho phép một đối tượng thuộc nhiều lớp khác nhau.

7. Trong lập trình hướng đối tượng, `association` (kết hợp) là gì?

A. Mối quan hệ giữa hai lớp mà không có sự sở hữu mạnh mẽ, trong đó một đối tượng có thể sử dụng các dịch vụ của đối tượng khác.
B. Một cách để tạo ra các lớp mới từ các lớp đã có.
C. Một cách để ẩn giấu các chi tiết triển khai của đối tượng.
D. Một cách để cho phép một đối tượng thuộc nhiều lớp khác nhau.

8. Ghi đè phương thức (method overriding) là gì?

A. Định nghĩa một phương thức trong lớp con có cùng tên và tham số với phương thức trong lớp cha.
B. Định nghĩa nhiều phương thức trong cùng một lớp có cùng tên nhưng khác tham số.
C. Định nghĩa một phương thức trừu tượng trong lớp trừu tượng.
D. Định nghĩa một phương thức trong interface.

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

A. Ẩ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.
B. Tạo ra nhiều đối tượng từ một lớp.
C. Cho phép một lớp kế thừa từ nhiều lớp khác nhau.
D. Tự động giải phóng bộ nhớ khi đối tượng không còn được sử dụng.

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

A. Một tập hợp các phương thức trừu tượng mà các lớp phải thực hiện.
B. Một lớp có thể tạo ra các đối tượng trực tiếp.
C. Một phương thức được tự động gọi khi đối tượng được tạo ra.
D. Một biến được sử dụng để lưu trữ dữ liệu.

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

A. Tăng tốc độ thực thi chương trình.
B. Tái sử dụng mã.
C. Dễ bảo trì và mở rộng.
D. Mô hình hóa thế giới thực một cách tự nhiên.

12. Nạp chồng phương thức (method overloading) là gì?

A. Định nghĩa nhiều phương thức trong cùng một lớp có cùng tên nhưng khác tham số.
B. Định nghĩa một phương thức trong lớp con có cùng tên và tham số với phương thức trong lớp cha.
C. Định nghĩa một phương thức trừu tượng trong lớp trừu tượng.
D. Định nghĩa một phương thức trong interface.

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

A. Cho phép một đối tượng có nhiều thuộc tính.
B. Cho phép một đối tượng thuộc nhiều lớp khác nhau và có thể thực hiện các hành vi khác nhau tùy thuộc vào lớp của nó.
C. Cho phép một lớp có nhiều thuộc tính trùng tên.
D. Cho phép tạo ra các đối tượng mà không cần định nghĩa lớp.

14. Đặc điểm nào sau đây mô tả đúng nhất về tính đóng gói trong lập trình hướng đối tượng?

A. Che 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.
B. Khả năng một đối tượng thuộc nhiều lớp khác nhau.
C. Khả năng một lớp có nhiều phương thức cùng tên nhưng khác tham số.
D. Tạo ra một lớp mới từ một lớp đã có.

15. Access modifiers (các bộ điều khiển truy cập) trong lập trình hướng đối tượng được sử dụng để làm gì?

A. Quy định phạm vi truy cập của các thuộc tính và phương thức của lớp.
B. Định nghĩa các lớp mới.
C. Thực hiện các phép toán số học.
D. Lưu trữ dữ liệu.

16. Sự khác biệt giữa `association` (kết hợp), `aggregation` (tập hợp) và `composition` (hợp thành) là gì?

A. `Association` là mối quan hệ yếu nhất, `aggregation` thể hiện mối quan hệ sở hữu nhưng đối tượng thành phần có thể tồn tại độc lập, `composition` thể hiện mối quan hệ sở hữu mạnh mẽ và đối tượng thành phần không thể tồn tại nếu không có đối tượng chứa.
B. `Composition` là mối quan hệ yếu nhất, `aggregation` thể hiện mối quan hệ sở hữu nhưng đối tượng thành phần có thể tồn tại độc lập, `association` thể hiện mối quan hệ sở hữu mạnh mẽ và đối tượng thành phần không thể tồn tại nếu không có đối tượng chứa.
C. `Aggregation` là mối quan hệ yếu nhất, `association` thể hiện mối quan hệ sở hữu nhưng đối tượng thành phần có thể tồn tại độc lập, `composition` thể hiện mối quan hệ sở hữu mạnh mẽ và đối tượng thành phần không thể tồn tại nếu không có đối tượng chứa.
D. `Composition` là mối quan hệ yếu nhất, `association` thể hiện mối quan hệ sở hữu nhưng đối tượng thành phần có thể tồn tại độc lập, `aggregation` thể hiện mối quan hệ sở hữu mạnh mẽ và đối tượng thành phần không thể tồn tại nếu không có đối tượng chứa.

17. Trong lập trình hướng đối tượng, `polymorphism` (tính đa hình) được thể hiện qua những cơ chế nào?

A. Nạp chồng phương thức (method overloading) và ghi đè phương thức (method overriding).
B. Đóng gói (encapsulation) và kế thừa (inheritance).
C. Trừu tượng (abstraction) và giao diện (interface).
D. Khởi tạo (constructor) và hủy (destructor).

18. Phương thức trừu tượng (abstract method) là gì?

A. Một phương thức được khai báo trong lớp trừu tượng mà không có phần thân và phải được định nghĩa lại trong các lớp con.
B. Một phương thức được khai báo trong lớp cha và không thể được ghi đè trong các lớp con.
C. Một phương thức được tự động gọi khi đối tượng được tạo ra.
D. Một phương thức được tự động gọi khi đối tượng bị hủy.

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

A. Một thể hiện cụ thể của một lớp.
B. Một bản thiết kế để tạo ra các lớp.
C. Một phương thức để thực hiện các phép toán logic.
D. Một biến để lưu trữ địa chỉ bộ nhớ.

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

A. Giải phóng bộ nhớ và tài nguyên khi đối tượng bị hủy.
B. Khởi tạo các thuộc tính của đối tượng.
C. Thực hiện các phép toán logic.
D. Định nghĩa các thuộc tính mới.

21. Sự khác biệt giữa `inheritance` (tính kế thừa) và `composition` (tính hợp thành) là gì?

A. `Inheritance` thể hiện mối quan hệ `is-a`, trong khi `composition` thể hiện mối quan hệ `has-a`.
B. `Composition` thể hiện mối quan hệ `is-a`, trong khi `inheritance` thể hiện mối quan hệ `has-a`.
C. `Inheritance` cho phép một lớp chứa các đối tượng khác, trong khi `composition` cho phép một lớp kế thừa từ các lớp khác.
D. `Composition` cho phép một lớp chứa các đối tượng khác, trong khi `inheritance` cho phép một lớp kế thừa từ các lớp khác.

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

A. Một hàm đượ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.
B. Một biến được định nghĩa bên ngoài một lớp.
C. Một lớp được định nghĩa bên trong một lớp khác.
D. Một cách để tạo ra các đối tượng mới.

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

A. Một biến được định nghĩa bên trong một lớp và lưu trữ dữ liệu của đối tượng.
B. Một hàm được định nghĩa bên ngoài một lớp.
C. Một lớp được định nghĩa bên ngoài một lớp khác.
D. Một cách để kế thừa từ các lớp khác.

24. Trong lập trình hướng đối tượng, tính chất 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

25. Phương thức khởi tạo (constructor) 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 đối tượng khi đối tượng được tạo ra.
B. Hủy bỏ đối tượng khi nó không còn được sử dụng.
C. Thực hiện các phép toán số học.
D. Định nghĩa các lớp mới.

26. Sự khác biệt giữa `private`, `protected` và `public` access modifiers là gì?

A. `Private` chỉ cho phép truy cập từ bên trong lớp, `protected` cho phép truy cập từ bên trong lớp và các lớp con, `public` cho phép truy cập từ mọi nơi.
B. `Public` chỉ cho phép truy cập từ bên trong lớp, `protected` cho phép truy cập từ bên trong lớp và các lớp con, `private` cho phép truy cập từ mọi nơi.
C. `Protected` chỉ cho phép truy cập từ bên trong lớp, `private` cho phép truy cập từ bên trong lớp và các lớp con, `public` cho phép truy cập từ mọi nơi.
D. `Public` chỉ cho phép truy cập từ bên trong lớp, `private` cho phép truy cập từ bên trong lớp và các lớp con, `protected` cho phép truy cập từ mọi nơi.

27. Nguyên tắc Dependency Inversion Principle (DIP) 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. Một lớp chỉ nên có một lý do để thay đổi.
C. Các lớp con phải có khả năng thay thế các lớp cha mà không làm thay đổi tính đúng đắn của chương trình.
D. Một lớp chỉ nên biết về các lớp lân cận trực tiếp của nó.

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

A. Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng.
B. Một thể hiện cụ thể của một đối tượng.
C. Một phương thức để thực hiện các phép toán số học.
D. Một biến để lưu trữ dữ liệu.

29. 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?

A. Liskov Substitution Principle (Nguyên tắc thay thế Liskov).
B. Law of Demeter (Luật Demeter).
C. Least Astonishment Principle (Nguyên tắc ít gây ngạc nhiên nhất).
D. Loose Coupling (Liên kết lỏng lẻo).

30. Khi nào nên sử dụng lập trình hướng đối tượng thay vì lập trình hướng thủ tục?

A. Khi dự án có cấu trúc phức tạp, nhiều thành phần tương tác và cần khả năng tái sử dụng mã cao.
B. Khi dự án đơn giản, chỉ cần thực hiện một loạt các bước tuần tự.
C. Khi cần tối ưu hóa tốc độ thực thi chương trình một cách tuyệt đối.
D. Khi không cần bảo trì và mở rộng dự án trong tương lai.

1 / 30

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

Tags: Bộ đề 7

1. Trong lập trình hướng đối tượng, 'inheritance' (tính kế thừa) giúp làm gì?

2 / 30

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

Tags: Bộ đề 7

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

3 / 30

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

Tags: Bộ đề 7

3. Lớp trừu tượng (abstract class) là gì?

4 / 30

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

Tags: Bộ đề 7

4. Trong lập trình hướng đối tượng, 'encapsulation' (tính đóng gói) giúp làm gì?

5 / 30

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

Tags: Bộ đề 7

5. Trong lập trình hướng đối tượng, 'composition' (tính hợp thành) là gì?

6 / 30

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

Tags: Bộ đề 7

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

7 / 30

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

Tags: Bộ đề 7

7. Trong lập trình hướng đối tượng, 'association' (kết hợp) là gì?

8 / 30

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

Tags: Bộ đề 7

8. Ghi đè phương thức (method overriding) là gì?

9 / 30

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

Tags: Bộ đề 7

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

10 / 30

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

Tags: Bộ đề 7

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

11 / 30

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

Tags: Bộ đề 7

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

12 / 30

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

Tags: Bộ đề 7

12. Nạp chồng phương thức (method overloading) là gì?

13 / 30

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

Tags: Bộ đề 7

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

14 / 30

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

Tags: Bộ đề 7

14. Đặc điểm nào sau đây mô tả đúng nhất về tính đóng gói trong lập trình hướng đối tượng?

15 / 30

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

Tags: Bộ đề 7

15. Access modifiers (các bộ điều khiển truy cập) trong lập trình hướng đối tượng được sử dụng để làm gì?

16 / 30

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

Tags: Bộ đề 7

16. Sự khác biệt giữa 'association' (kết hợp), 'aggregation' (tập hợp) và 'composition' (hợp thành) là gì?

17 / 30

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

Tags: Bộ đề 7

17. Trong lập trình hướng đối tượng, 'polymorphism' (tính đa hình) được thể hiện qua những cơ chế nào?

18 / 30

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

Tags: Bộ đề 7

18. Phương thức trừu tượng (abstract method) là gì?

19 / 30

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

Tags: Bộ đề 7

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ộ đề 7

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

21 / 30

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

Tags: Bộ đề 7

21. Sự khác biệt giữa 'inheritance' (tính kế thừa) và 'composition' (tính hợp thành) là gì?

22 / 30

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

Tags: Bộ đề 7

22. Phương thức (method) 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ộ đề 7

23. Thuộc tính (attribute) 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ộ đề 7

24. Trong lập trình hướng đối tượng, tính chất 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?

25 / 30

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

Tags: Bộ đề 7

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

26 / 30

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

Tags: Bộ đề 7

26. Sự khác biệt giữa 'private', 'protected' và 'public' access modifiers là gì?

27 / 30

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

Tags: Bộ đề 7

27. Nguyên tắc Dependency Inversion Principle (DIP) trong SOLID nói về điều gì?

28 / 30

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

Tags: Bộ đề 7

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

29 / 30

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

Tags: Bộ đề 7

29. 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?

30 / 30

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

Tags: Bộ đề 7

30. Khi nào nên sử dụng lập trình hướng đối tượng thay vì lập trình hướng thủ tục?