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

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é!!!


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

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

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

A. Khởi tạo đối tượng.
B. Giải phóng bộ nhớ hoặc tài nguyên khi đối tượng không còn được sử dụng.
C. Thay đổi tên của đối tượng.
D. Sao chép đối tượng sang một vị trí khác trong bộ nhớ.

2. Mục đích của việc sử dụng `tính trừu tượng` (abstraction) 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 sự phức tạp bằng cách ẩn các chi tiết không cần thiết và tập trung vào những điều cốt yếu.
C. Bảo vệ dữ liệu khỏi bị truy cập trái phép.
D. Cho phép tái sử dụng mã nguồn.

3. 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 đối tượng trong bộ nhớ.
B. Một bản thiết kế hoặc khuôn mẫu cho các đối tượng.
C. Một phương thức đặc biệt để tạo ra các đối tượng.
D. Một biến toàn cục được chia sẻ giữa các đối tượng.

4. Mục đích chính của việc sử dụng `tính kế thừa` (inheritance) 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. Tái sử dụng mã nguồn và thiết lập mối quan hệ `là một loại` giữa các lớp.
C. Bảo vệ dữ liệu khỏi bị truy cập trái phép.
D. Đơn giản hóa việc gỡ lỗi chương trình.

5. Trong lập trình hướng đối tượng, `tính module hóa` (modularity) đạt được chủ yếu thông qua cơ chế nào?

A. Sử dụng biến toàn cục.
B. Phân chia chương trình thành các lớp và đối tượng.
C. Sử dụng cấu trúc điều khiển tuần tự.
D. Viết mã dài và phức tạp trong một hàm duy nhất.

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

A. Khả năng một đối tượng có nhiều thuộc tính.
B. Khả năng một đối tượng thuộc nhiều lớp khác nhau.
C. Khả năng một đối tượng có thể được sử dụng theo nhiều cách khác nhau.
D. Khả năng một phương thức có thể có nhiều tên khác nhau.

7. Quan hệ `kế thừa` (inheritance) trong lập trình hướng đối tượng thể hiện mối quan hệ gì giữa các lớp?

A. Quan hệ ngang hàng, các lớp độc lập với nhau.
B. Quan hệ `là một loại` (is-a), lớp con là một trường hợp đặc biệt của lớp cha.
C. Quan hệ `sử dụng` (uses-a), một lớp sử dụng chức năng của lớp khác.
D. Quan hệ `có một` (has-a), một lớp chứa đối tượng của lớp khác như một thuộc tính.

8. Trong lập trình hướng đối tượng, `giao diện` (interface) khác với `lớp trừu tượng` (abstract class) chủ yếu ở điểm nào?

A. Giao diện có thể chứa các phương thức có thân hàm, lớp trừu tượng thì không.
B. Lớp trừu tượng có thể kế thừa từ nhiều lớp khác, giao diện thì không.
C. Giao diện chỉ định nghĩa các phương thức trừu tượng (không có thân hàm), lớp trừu tượng có thể có cả phương thức trừu tượng và phương thức có thân hàm.
D. Không có sự khác biệt, `giao diện` và `lớp trừu tượng` là các khái niệm tương đương.

9. Ưu điểm chính của việc sử dụng lập trình hướng đối tượng so với lập trình hướng thủ tục là gì?

A. Tốc độ thực thi chương trình nhanh hơn.
B. Dễ dàng quản lý và bảo trì mã nguồn hơn khi dự án lớn và phức tạp.
C. Tiêu thụ ít bộ nhớ hơn.
D. Khả năng tương thích với phần cứng tốt hơn.

10. Khái niệm nào cho phép tạo ra các lớp cha mà không thể tạo đối tượng trực tiếp từ chúng, mà chỉ dùng để làm lớp cơ sở cho các lớp con?

A. Lớp tĩnh (Static class)
B. Lớp trừu tượng (Abstract class)
C. Lớp kín (Sealed class)
D. Lớp nội (Inner class)

11. Trong lập trình hướng đối tượng, thuật ngữ `thành phần` (component) thường được dùng để chỉ điều gì?

A. Một biến cục bộ trong phương thức.
B. Một lớp cơ sở trừu tượng.
C. Một khối xây dựng độc lập, có thể tái sử dụng, thường là một đối tượng hoặc một nhóm đối tượng có liên quan.
D. Một phần của bộ nhớ được cấp phát cho đối tượng.

12. Quan hệ `thành phần hóa` (composition) khác với `tổng hợp` (aggregation) ở điểm nào?

A. Tổng hợp thể hiện quan hệ sở hữu mạnh mẽ hơn thành phần hóa.
B. Thành phần hóa thể hiện quan hệ sở hữu mạnh mẽ hơn tổng hợp, vòng đời của đối tượng thành phần phụ thuộc vào đối tượng chứa.
C. Tổng hợp và thành phần hóa là các khái niệm hoàn toàn giống nhau.
D. Thành phần hóa chỉ áp dụng cho lớp trừu tượng, tổng hợp chỉ áp dụng cho lớp cụ thể.

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

A. Xóa đối tượng khỏi bộ nhớ.
B. Thay đổi trạng thái của đối tượng sau khi tạo.
C. Khởi tạo trạng thái ban đầu của đối tượng khi nó được tạo ra.
D. Gọi các phương thức khác của đối tượng.

14. Trong lập trình hướng đối tượng, `phạm vi truy cập` (access modifier) có vai trò gì?

A. Xác định kiểu dữ liệu của thuộc tính.
B. Điều khiển quyền truy cập đến các thuộc tính và phương thức của lớp từ bên ngoài.
C. Thay đổi tên của lớp.
D. Tạo ra các đối tượng mới.

15. Loại quan hệ nào mô tả mối liên kết lỏng lẻo giữa hai lớp, trong đó một lớp sử dụng chức năng của lớp khác nhưng không sở hữu hoặc quản lý vòng đời của lớp kia?

A. Tổng hợp (Aggregation)
B. Kết hợp (Association)
C. Thừa kế (Inheritance)
D. Thành phần hóa (Composition)

16. Điều gì xảy ra khi bạn cố gắng truy cập một thuộc tính `private` của một đối tượng từ bên ngoài lớp của nó?

A. Chương trình biên dịch sẽ báo lỗi.
B. Thuộc tính sẽ được trả về với giá trị mặc định.
C. Thuộc tính sẽ được tự động chuyển thành `public` để truy cập được.
D. Chương trình sẽ chạy nhưng có thể gây ra lỗi logic không mong muốn.

17. Trong lập trình hướng đối tượng, `phương thức` (method) được hiểu là gì?

A. Một biến được định nghĩa bên trong lớp.
B. Một hành động hoặc thao tác mà đối tượng có thể thực hiện.
C. Một kiểu dữ liệu đặc biệt của đối tượng.
D. Một cách để tạo ra các đối tượng mới.

18. Điểm khác biệt chính giữa `nạp chồng phương thức` (method overloading) và `ghi đè phương thức` (method overriding) là gì?

A. Nạp chồng phương thức xảy ra trong cùng một lớp, ghi đè phương thức xảy ra giữa lớp cha và lớp con.
B. Nạp chồng phương thức thay đổi tên phương thức, ghi đè phương thức giữ nguyên tên phương thức.
C. Nạp chồng phương thức áp dụng cho thuộc tính, ghi đè phương thức áp dụng cho phương thức.
D. Không có sự khác biệt, hai khái niệm này là như nhau.

19. Nguyên tắc `Open/Closed` trong SOLID nói về điều gì?

A. Phần mềm nên mở cho mở rộng nhưng đóng cho sửa đổi.
B. Mỗi lớp chỉ nên có một lý do duy nhất để thay đổi.
C. Các lớp con có thể thay thế lớp cha mà không làm hỏng chương trình.
D. Nhiều giao diện đặc thù tốt hơn là một giao diện chung.

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

A. Một lớp được định nghĩa trước.
B. Một bản thiết kế cho dữ liệu.
C. Một thể hiện cụ thể của một lớp.
D. Một tập hợp các lớp liên quan.

21. Khi nào thì việc sử dụng lập trình hướng đối tượng có thể KHÔNG phải là lựa chọn tốt nhất?

A. Khi xây dựng các hệ thống lớn và phức tạp.
B. Khi phát triển ứng dụng giao diện người dùng đồ họa.
C. Khi viết các chương trình nhỏ, đơn giản, có tính tuyến tính và hiệu suất cao.
D. Khi cần tái sử dụng mã nguồn và dễ dàng bảo trì.

22. Nguyên tắc `Single Responsibility` trong SOLID nói về điều gì?

A. Phần mềm nên mở cho mở rộng nhưng đóng cho sửa đổi.
B. Mỗi lớp chỉ nên có một lý do duy nhất để thay đổi.
C. Các lớp con có thể thay thế lớp cha mà không làm hỏng chương trình.
D. Nhiều giao diện đặc thù tốt hơn là một giao diện chung.

23. Nguyên tắc cơ bản nào của lập trình hướng đối tượng cho phép một đối tượng che giấu thông tin chi tiết bên trong và chỉ hiển thị giao diện cần thiết cho người dùng bên ngoài?

A. Kế thừa (Inheritance)
B. Đa hình (Polymorphism)
C. Đóng gói (Encapsulation)
D. Trừu tượng (Abstraction)

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

A. Một lớp kế thừa từ một lớp cha duy nhất.
B. Một lớp có nhiều thuộc tính.
C. Một lớp kế thừa từ nhiều lớp cha.
D. Một phương thức có nhiều tên.

25. Một `đối tượng` được tạo ra từ một `lớp` được gọi là gì?

A. Biến
B. Kiểu dữ liệu
C. Thể hiện (instance)
D. Phương thức

26. Khái niệm nào sau đây mô tả khả năng một đối tượng thuộc lớp con có thể thực hiện phương thức của lớp cha theo cách riêng của nó?

A. Nạp chồng phương thức (Method Overloading)
B. Ghi đè phương thức (Method Overriding)
C. Tính trừu tượng (Abstraction)
D. Tính đóng gói (Encapsulation)

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

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

28. Trong lập trình hướng đối tượng, `thuộc tính` (attribute) của một đối tượng được hiểu là gì?

A. Một hành động mà đối tượng có thể thực hiện.
B. Một đặc điểm hoặc trạng thái của đối tượng.
C. Một cách để tạo ra đối tượng mới.
D. Một loại phương thức đặc biệt.

29. Lợi ích chính của việc sử dụng `giao diện` (interface) 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. Cho phép các lớp không liên quan kế thừa chung một tập hợp các phương thức, đảm bảo tính nhất quán trong hành vi.
C. Bảo vệ dữ liệu khỏi bị truy cập trái phép.
D. Đơn giản hóa việc gỡ lỗi chương trình.

30. Điều gì KHÔNG phải là một lợi ích của lập trình hướng đối tượng?

A. Tái sử dụng mã nguồn.
B. Giảm độ phức tạp của chương trình.
C. Tăng tốc độ phát triển phần mềm.
D. Tăng hiệu suất bộ nhớ.

1 / 30

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

Tags: Bộ đề 4

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

2 / 30

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

Tags: Bộ đề 4

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

3 / 30

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

Tags: Bộ đề 4

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

4 / 30

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

Tags: Bộ đề 4

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

5 / 30

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

Tags: Bộ đề 4

5. Trong lập trình hướng đối tượng, 'tính module hóa' (modularity) đạt được chủ yếu thông qua cơ chế nào?

6 / 30

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

Tags: Bộ đề 4

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

7 / 30

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

Tags: Bộ đề 4

7. Quan hệ 'kế thừa' (inheritance) trong lập trình hướng đối tượng thể hiện mối quan hệ gì giữa các lớp?

8 / 30

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

Tags: Bộ đề 4

8. Trong lập trình hướng đối tượng, 'giao diện' (interface) khác với 'lớp trừu tượng' (abstract class) chủ yếu ở điểm nào?

9 / 30

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

Tags: Bộ đề 4

9. Ưu điểm chính của việc sử dụng lập trình hướng đối tượng so với lập trình hướng thủ tục là gì?

10 / 30

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

Tags: Bộ đề 4

10. Khái niệm nào cho phép tạo ra các lớp cha mà không thể tạo đối tượng trực tiếp từ chúng, mà chỉ dùng để làm lớp cơ sở cho các lớp con?

11 / 30

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

Tags: Bộ đề 4

11. Trong lập trình hướng đối tượng, thuật ngữ 'thành phần' (component) thường được dùng để chỉ điều gì?

12 / 30

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

Tags: Bộ đề 4

12. Quan hệ 'thành phần hóa' (composition) khác với 'tổng hợp' (aggregation) ở điểm nào?

13 / 30

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

Tags: Bộ đề 4

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

14 / 30

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

Tags: Bộ đề 4

14. Trong lập trình hướng đối tượng, 'phạm vi truy cập' (access modifier) có vai trò gì?

15 / 30

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

Tags: Bộ đề 4

15. Loại quan hệ nào mô tả mối liên kết lỏng lẻo giữa hai lớp, trong đó một lớp sử dụng chức năng của lớp khác nhưng không sở hữu hoặc quản lý vòng đời của lớp kia?

16 / 30

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

Tags: Bộ đề 4

16. Điều gì xảy ra khi bạn cố gắng truy cập một thuộc tính 'private' của một đối tượng từ bên ngoài lớp của nó?

17 / 30

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

Tags: Bộ đề 4

17. Trong lập trình hướng đối tượng, 'phương thức' (method) được hiểu là gì?

18 / 30

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

Tags: Bộ đề 4

18. Điểm khác biệt chính giữa 'nạp chồng phương thức' (method overloading) và 'ghi đè phương thức' (method overriding) là gì?

19 / 30

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

Tags: Bộ đề 4

19. Nguyên tắc 'Open/Closed' trong SOLID nói về điều gì?

20 / 30

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

Tags: Bộ đề 4

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

21 / 30

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

Tags: Bộ đề 4

21. Khi nào thì việc sử dụng lập trình hướng đối tượng có thể KHÔNG phải là lựa chọn tốt nhất?

22 / 30

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

Tags: Bộ đề 4

22. Nguyên tắc 'Single Responsibility' trong SOLID nói về điều gì?

23 / 30

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

Tags: Bộ đề 4

23. Nguyên tắc cơ bản nào của lập trình hướng đối tượng cho phép một đối tượng che giấu thông tin chi tiết bên trong và chỉ hiển thị giao diện cần thiết cho người dùng bên ngoài?

24 / 30

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

Tags: Bộ đề 4

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

25 / 30

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

Tags: Bộ đề 4

25. Một 'đối tượng' được tạo ra từ một 'lớp' được gọi là gì?

26 / 30

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

Tags: Bộ đề 4

26. Khái niệm nào sau đây mô tả khả năng một đối tượng thuộc lớp con có thể thực hiện phương thức của lớp cha theo cách riêng của nó?

27 / 30

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

Tags: Bộ đề 4

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

28 / 30

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

Tags: Bộ đề 4

28. Trong lập trình hướng đối tượng, 'thuộc tính' (attribute) của một đối tượng được hiểu là gì?

29 / 30

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

Tags: Bộ đề 4

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

30 / 30

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

Tags: Bộ đề 4

30. Điều gì KHÔNG phải là một lợi ích của lập trình hướng đối tượng?