Đề 7 – Bài tập, đề thi 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

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

1. Thuật ngữ nào mô tả việc một đối tượng có thể được xem như là một thể hiện của nhiều kiểu dữ liệu khác nhau (ví dụ, một 'Xe hơi′ cũng có thể được xem là một 'Phương tiện giao thông′)?

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

2. Trong thiết kế hướng đối tượng, nguyên tắc 'SOLID′ nào tập trung vào việc một lớp chỉ nên có một lý do duy nhất để thay đổi?

A. Nguyên tắc thế chỗ Liskov (Liskov Substitution Principle)
B. Nguyên tắc mở-đóng (Open∕Closed Principle)
C. Nguyên tắc đơn trách nhiệm (Single Responsibility Principle)
D. Nguyên tắc đảo ngược phụ thuộc (Dependency Inversion Principle)

3. Ưu điểm chính của việc sử dụng giao diện (interface) trong OOP là gì?

A. Tăng hiệu suất thực thi
B. Cho phép kế thừa đa bội hành vi
C. Cung cấp cơ chế đóng gói mạnh mẽ
D. Giảm độ phức tạp của mã nguồn

4. Khi nào thì 'hợp thành′ (composition) được ưu tiên hơn 'kế thừa′ (inheritance) trong thiết kế OOP?

A. Khi có mối quan hệ 'is-a′ rõ ràng
B. Khi muốn tái sử dụng mã nguồn một cách tối đa
C. Khi muốn tạo ra mối quan hệ 'has-a′ mạnh mẽ và chặt chẽ
D. Khi cần đa hình runtime

5. Phương thức 'ảo′ (virtual method) trong OOP liên quan chặt chẽ nhất đến khái niệm nào?

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

6. Trong OOP, 'tính đa hình′ (polymorphism) giúp cải thiện điều gì trong thiết kế phần mềm?

A. Tính bảo mật của dữ liệu
B. Tính tái sử dụng mã
C. Tính linh hoạt và khả năng mở rộng
D. Tốc độ thực thi chương trình

7. Trong lập trình hướng đối tượng, 'đ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 lớp có nhiều đối tượng
C. Khả năng một phương thức hoạt động khác nhau tùy thuộc vào đối tượng gọi nó
D. Khả năng một chương trình chạy trên nhiều nền tảng

8. Khái niệm nào trong OOP liên quan đến việc nhóm dữ liệu (thuộc tính) và phương thức thao tác trên dữ liệu đó vào một đơn vị duy nhất?

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

9. Lợi ích chính của việc sử dụng 'tính đóng gói′ (encapsulation) KHÔNG bao gồm điều nào sau đây?

A. Kiểm soát quyền truy cập dữ liệu
B. Ẩn giấu thông tin chi tiết cài đặt
C. Giảm sự phức tạp của giao diện người dùng
D. Ngăn chặn sửa đổi dữ liệu không mong muốn

10. Trong OOP, 'tính đóng gói′ (encapsulation) hỗ trợ trực tiếp cho mục tiêu nào sau đây?

A. Tăng tính linh hoạt của chương trình
B. Giảm sự phụ thuộc lẫn nhau giữa các thành phần
C. Cho phép đa hình
D. Tăng tốc độ biên dịch

11. Sự 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 xảy ra trong cùng một lớp, ghi đè xảy ra giữa lớp cha và lớp con
B. Nạp chồng liên quan đến các phương thức tĩnh, ghi đè liên quan đến các phương thức không tĩnh
C. Nạp chồng thay đổi hành vi của phương thức cha, ghi đè tạo ra phương thức mới
D. Không có sự khác biệt, chúng là các thuật ngữ đồng nghĩa

12. Điều gì KHÔNG phải là lợi ích chính của 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ã nguồn
C. Dễ bảo trì và mở rộng
D. Mô hình hóa thế giới thực tốt hơn

13. Trong OOP, 'đa hình thời gian biên dịch′ (compile-time polymorphism) thường được thực hiện thông qua cơ chế nào?

A. Ghi đè phương thức (Method overriding)
B. Nạp chồng phương thức (Method overloading)
C. Lớp trừu tượng (Abstract class)
D. Giao diện (Interface)

14. Trong OOP, 'lớp′ (class) và 'đối tượng′ (object) khác nhau như thế nào?

A. Lớp là một thể hiện cụ thể, còn đối tượng là bản thiết kế
B. Lớp là bản thiết kế, còn đối tượng là một thể hiện cụ thể của lớp đó
C. Lớp và đối tượng là các thuật ngữ đồng nghĩa và có thể thay thế cho nhau
D. Đối tượng chứa định nghĩa của lớp

15. Trong ngữ cảnh của OOP, 'tính kế thừa′ (inheritance) thúc đẩy điều gì?

A. Tăng tính phức tạp của mã nguồn
B. Giảm khả năng tái sử dụng mã
C. Tái sử dụng và mở rộng mã nguồn
D. Giảm tính bảo mật của dữ liệu

16. Điều gì KHÔNG phải là một loại quan hệ phổ biến giữa các lớp trong OOP?

A. Kế thừa (Inheritance)
B. Tổng hợp (Aggregation)
C. Đa hình (Polymorphism)
D. Hợp thành (Composition)

17. Phương thức đặc biệt nào trong một lớp được tự động gọi khi một đối tượng của lớp đó được tạo ra?

A. Phương thức hủy (Destructor)
B. Phương thức tĩnh (Static method)
C. Phương thức khởi tạo (Constructor)
D. Phương thức trừu tượng (Abstract method)

18. Mục đích của việc sử dụng 'phương thức tĩnh′ (static method) trong một lớp là gì?

A. Để tạo ra các đối tượng của lớp
B. Để truy cập các thuộc tính không tĩnh của lớp
C. Để thực hiện các thao tác liên quan đến lớp mà không cần đối tượng cụ thể
D. Để ghi đè phương thức của lớp cha

19. Điều gì xảy ra nếu một lớp con không ghi đè (override) một phương thức ảo (virtual method) của lớp cha?

A. Lỗi biên dịch sẽ xảy ra
B. Phương thức của lớp cha sẽ không thể được gọi
C. Phương thức của lớp cha sẽ được kế thừa và sử dụng nguyên bản
D. Phương thức của lớp cha sẽ bị ẩn đi

20. Mục đích của việc sử dụng 'lớp trừu tượng′ (abstract class) trong OOP là gì?

A. Để tạo ra các đối tượng trực tiếp
B. Để cung cấp một lớp cơ sở chung cho các lớp con, định nghĩa hành vi chung nhưng không hoàn chỉnh
C. Để tăng tốc độ thực thi chương trình
D. Để ẩn hoàn toàn dữ liệu bên trong

21. Thuật ngữ nào mô tả khả năng một lớp con (subclass) kế thừa các thuộc tính và phương thức từ lớp cha (superclass)?

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

22. Kiểu quan hệ nào trong OOP thể hiện mối quan hệ 'có một′ (has-a) giữa các lớp?

A. Kế thừa (Inheritance)
B. Tổng hợp (Aggregation)
C. Đa hình (Polymorphism)
D. Trừu tượng (Abstraction)

23. Loại kế thừa nào mà một lớp con có thể kế thừa từ nhiều lớp cha?

A. Kế thừa đơn (Single inheritance)
B. Kế thừa đa cấp (Multilevel inheritance)
C. Kế thừa đa bội (Multiple inheritance)
D. Kế thừa phân cấp (Hierarchical inheritance)

24. Từ khóa nào thường được sử dụng để chỉ đối tượng hiện tại trong một phương thức của lớp?

A. super
B. this
C. static
D. final

25. Điều gì xảy ra khi một đối tượng không còn được tham chiếu bởi bất kỳ phần nào của chương trình trong các ngôn ngữ OOP có cơ chế 'thu gom rác′ (garbage collection)?

A. Đối tượng tiếp tục tồn tại và chiếm bộ nhớ cho đến khi chương trình kết thúc
B. Đối tượng được tự động giải phóng khỏi bộ nhớ bởi bộ thu gom rác
C. Chương trình sẽ gặp lỗi do tràn bộ nhớ
D. Người lập trình phải giải phóng bộ nhớ một cách thủ công

26. Thuật ngữ nào mô tả một mẫu thiết kế (design pattern) trong OOP, cung cấp một giao diện thống nhất để truy cập các thuật toán khác nhau, cho phép thay đổi thuật toán một cách độc lập với client sử dụng nó?

A. Singleton
B. Factory
C. Strategy
D. Observer

27. Mục đích chính của việc sử dụng 'tính trừu tượng′ (abstraction) trong OOP 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
C. Cho phép kế thừa giữa các lớp
D. Đảm bảo an toàn dữ liệu

28. Nguyên tắc 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ị các chức năng cần thiết ra 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)

29. Khi một lớp kế thừa từ một lớp trừu tượng, điều gì bắt buộc lớp con phải thực hiện?

A. Ghi đè tất cả các phương thức không trừu tượng của lớp cha
B. Triển khai tất cả các phương thức trừu tượng của lớp cha
C. Không cần thực hiện bất kỳ thay đổi nào
D. Xóa bỏ tất cả các phương thức trừu tượng của lớp cha

30. Trong OOP, 'phạm vi truy cập′ (access modifier) 'protected′ có ý nghĩa gì?

A. Chỉ có thể truy cập từ bên trong lớp đó
B. Có thể truy cập từ bất kỳ đâu
C. Có thể truy cập từ bên trong lớp đó và các lớp con
D. Chỉ có thể truy cập từ bên trong cùng package

1 / 30

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

Tags: Bộ đề 8

1. Thuật ngữ nào mô tả việc một đối tượng có thể được xem như là một thể hiện của nhiều kiểu dữ liệu khác nhau (ví dụ, một `Xe hơi′ cũng có thể được xem là một `Phương tiện giao thông′)?

2 / 30

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

Tags: Bộ đề 8

2. Trong thiết kế hướng đối tượng, nguyên tắc `SOLID′ nào tập trung vào việc một lớp chỉ nên có một lý do duy nhất để thay đổi?

3 / 30

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

Tags: Bộ đề 8

3. Ưu điểm chính của việc sử dụng giao diện (interface) trong OOP là gì?

4 / 30

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

Tags: Bộ đề 8

4. Khi nào thì `hợp thành′ (composition) được ưu tiên hơn `kế thừa′ (inheritance) trong thiết kế OOP?

5 / 30

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

Tags: Bộ đề 8

5. Phương thức `ảo′ (virtual method) trong OOP liên quan chặt chẽ nhất đến khái niệm nào?

6 / 30

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

Tags: Bộ đề 8

6. Trong OOP, `tính đa hình′ (polymorphism) giúp cải thiện điều gì trong thiết kế phần mềm?

7 / 30

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

Tags: Bộ đề 8

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

8 / 30

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

Tags: Bộ đề 8

8. Khái niệm nào trong OOP liên quan đến việc nhóm dữ liệu (thuộc tính) và phương thức thao tác trên dữ liệu đó vào một đơn vị duy nhất?

9 / 30

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

Tags: Bộ đề 8

9. Lợi ích chính của việc sử dụng `tính đóng gói′ (encapsulation) KHÔNG bao gồm điều nào sau đây?

10 / 30

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

Tags: Bộ đề 8

10. Trong OOP, `tính đóng gói′ (encapsulation) hỗ trợ trực tiếp cho mục tiêu nào sau đây?

11 / 30

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

Tags: Bộ đề 8

11. Sự 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ì?

12 / 30

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

Tags: Bộ đề 8

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

13 / 30

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

Tags: Bộ đề 8

13. Trong OOP, `đa hình thời gian biên dịch′ (compile-time polymorphism) thường được thực hiện thông qua cơ chế nào?

14 / 30

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

Tags: Bộ đề 8

14. Trong OOP, `lớp′ (class) và `đối tượng′ (object) khác nhau như thế nào?

15 / 30

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

Tags: Bộ đề 8

15. Trong ngữ cảnh của OOP, `tính kế thừa′ (inheritance) thúc đẩy điều gì?

16 / 30

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

Tags: Bộ đề 8

16. Điều gì KHÔNG phải là một loại quan hệ phổ biến giữa các lớp trong OOP?

17 / 30

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

Tags: Bộ đề 8

17. Phương thức đặc biệt nào trong một lớp được tự động gọi khi một đối tượng của lớp đó được tạo ra?

18 / 30

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

Tags: Bộ đề 8

18. Mục đích của việc sử dụng `phương thức tĩnh′ (static method) trong một lớp là gì?

19 / 30

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

Tags: Bộ đề 8

19. Điều gì xảy ra nếu một lớp con không ghi đè (override) một phương thức ảo (virtual method) của lớp cha?

20 / 30

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

Tags: Bộ đề 8

20. Mục đích của việc sử dụng `lớp trừu tượng′ (abstract class) trong OOP là gì?

21 / 30

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

Tags: Bộ đề 8

21. Thuật ngữ nào mô tả khả năng một lớp con (subclass) kế thừa các thuộc tính và phương thức từ lớp cha (superclass)?

22 / 30

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

Tags: Bộ đề 8

22. Kiểu quan hệ nào trong OOP thể hiện mối quan hệ `có một′ (has-a) giữa các lớp?

23 / 30

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

Tags: Bộ đề 8

23. Loại kế thừa nào mà một lớp con có thể kế thừa từ nhiều lớp cha?

24 / 30

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

Tags: Bộ đề 8

24. Từ khóa nào thường được sử dụng để chỉ đối tượng hiện tại trong một phương thức của lớp?

25 / 30

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

Tags: Bộ đề 8

25. Điều gì xảy ra khi một đối tượng không còn được tham chiếu bởi bất kỳ phần nào của chương trình trong các ngôn ngữ OOP có cơ chế `thu gom rác′ (garbage collection)?

26 / 30

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

Tags: Bộ đề 8

26. Thuật ngữ nào mô tả một mẫu thiết kế (design pattern) trong OOP, cung cấp một giao diện thống nhất để truy cập các thuật toán khác nhau, cho phép thay đổi thuật toán một cách độc lập với client sử dụng nó?

27 / 30

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

Tags: Bộ đề 8

27. Mục đích chính của việc sử dụng `tính trừu tượng′ (abstraction) trong OOP là gì?

28 / 30

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

Tags: Bộ đề 8

28. Nguyên tắc 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ị các chức năng cần thiết ra bên ngoài?

29 / 30

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

Tags: Bộ đề 8

29. Khi một lớp kế thừa từ một lớp trừu tượng, điều gì bắt buộc lớp con phải thực hiện?

30 / 30

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

Tags: Bộ đề 8

30. Trong OOP, `phạm vi truy cập′ (access modifier) `protected′ có ý nghĩa gì?