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

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

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

1. Đ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 chứa nó?

A. Chương trình sẽ biên dịch thành công và chạy bình thường.
B. Giá trị mặc định của thuộc tính sẽ được trả về.
C. Lỗi biên dịch hoặc lỗi thời gian chạy sẽ xảy ra (tùy ngôn ngữ).
D. Thuộc tính sẽ tự động chuyển thành `public`.

2. Mục đích chính của `design patterns` (mẫu thiết kế) trong lập trình hướng đối tượng là gì?

A. Tăng tốc độ phát triển phần mềm.
B. Cung cấp các giải pháp đã được kiểm chứng cho các vấn đề thiết kế thường gặp.
C. Thay thế hoàn toàn việc tự thiết kế cấu trúc chương trình.
D. Giảm thiểu số lượng dòng mã cần viết.

3. Từ khóa nào thường được sử dụng để thể hiện tính kế thừa trong nhiều ngôn ngữ lập trình hướng đối tượng?

A. implements
B. extends
C. new
D. static

4. Lỗi `NullPointerException` (hoặc tương đương trong các ngôn ngữ khác) thường xảy ra trong lập trình hướng đối tượng khi nào?

A. Khi cố gắng truy cập một thuộc tính `private`.
B. Khi gọi một phương thức trên một đối tượng chưa được khởi tạo (tham chiếu null).
C. Khi thực hiện phép chia cho 0.
D. Khi vượt quá giới hạn bộ nhớ.

5. Trong ngữ cảnh 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 thuộc nhiều lớp khác nhau
B. Khả năng một phương thức có thể được định nghĩa lại ở các lớp con
C. Khả năng một đối tượng có nhiều thuộc tính
D. Khả năng một lớp có nhiều đối tượng

6. Thuật ngữ nào mô tả quá trình tạo ra một thể hiện cụ thể của một lớp trong lập trình hướng đối tượng?

A. Kế thừa hóa (Inheritance)
B. Đóng gói hóa (Encapsulation)
C. Khởi tạo đối tượng (Instantiation)
D. Trừu tượng hóa (Abstraction)

7. Loại quan hệ nào thể hiện sự phụ thuộc mạnh mẽ, trong đó một đối tượng là một phần không thể thiếu của đối tượng khác và vòng đời của chúng phụ thuộc lẫn nhau?

A. Hiệp hội (Association)
B. Tổng hợp (Aggregation)
C. Kết hợp (Composition)
D. Kế thừa (Inheritance)

8. Trong lập trình hướng đối tượng, `tính đóng gói` (encapsulation) chủ yếu nhằm mục đích gì?

A. Tăng hiệu suất của chương trình.
B. Đơn giản hóa cú pháp ngôn ngữ lập trình.
C. Bảo vệ dữ liệu và kiểm soát truy cập đến dữ liệu.
D. Giảm thời gian biên dịch chương trình.

9. Điều gì KHÔNG phải là lợi ích của việc sử dụng `interface` (giao diện) trong lập trình hướng đối tượng?

A. Cho phép đa kế thừa trong các ngôn ngữ không hỗ trợ đa kế thừa lớp.
B. Giảm sự phụ thuộc giữa các module và tăng tính module hóa.
C. Tăng hiệu suất thực thi của chương trình.
D. Định nghĩa một hợp đồng rõ ràng cho các lớp thực hiện.

10. Loại truy cập nào cho phép thuộc tính hoặc phương thức của một lớp được truy cập từ bất kỳ đâu, cả bên trong và bên ngoài lớp, cũng như từ lớp con?

A. Private
B. Protected
C. Public
D. Internal

11. Trong ngữ cảnh `đa hình` (polymorphism), `ghi đè phương thức` (method overriding) là gì?

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

12. Nguyên tắc `SOLID` nào trong lập trình hướng đối tượng khuyến khích việc các lớp nên mở để mở rộng nhưng đóng để sửa đổi?

A. Nguyên tắc thay thế Liskov (Liskov Substitution Principle)
B. Nguyên tắc mở đóng (Open/Closed Principle)
C. Nguyên tắc phân tách giao diện (Interface Segregation Principle)
D. Nguyên tắc đảo ngược phụ thuộc (Dependency Inversion Principle)

13. Ư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. Chương trình chạy nhanh hơn.
B. Mã nguồn dễ bảo trì và tái sử dụng hơn.
C. Cú pháp ngôn ngữ đơn giản hơn.
D. Yêu cầu ít bộ nhớ hơn.

14. Điều gì xảy ra khi một lớp con (subclass) kế thừa từ một lớp cha (superclass) trong lập trình hướng đối tượng?

A. Lớp con mất quyền truy cập vào các thuộc tính và phương thức của lớp cha.
B. Lớp con chỉ có thể truy cập các thuộc tính và phương thức công khai (public) của lớp cha.
C. Lớp con sao chép toàn bộ mã nguồn của lớp cha.
D. Lớp con có thể sử dụng lại và mở rộng các thuộc tính và phương thức của lớp cha.

15. Khi nào nên sử dụng `tính trừu tượng` (abstraction) trong thiết kế phần mềm hướng đối tượng?

A. Khi cần tăng tốc độ thực thi chương trình.
B. Khi muốn giảm kích thước mã nguồn.
C. Khi muốn quản lý độ phức tạp và tập trung vào các khía cạnh quan trọng.
D. Khi cần bảo vệ mã nguồn khỏi bị sao chép.

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

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

17. Trong lập trình hướng đối tượng, `tính kế thừa` mang lại lợi ích chính nào sau đây?

A. Tăng tốc độ thực thi chương trình
B. Giảm thiểu sử dụng bộ nhớ
C. Tái sử dụng mã nguồn và giảm tính dư thừa
D. Cải thiện tính bảo mật của dữ liệu

18. Điều gì KHÔNG phải là một nguyên tắc cơ bản của lập trình hướng đối tượng?

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

19. Mối quan hệ `is-a` (là một) thường được thể hiện thông qua cơ chế nào trong lập trình hướng đối tượng?

A. Tổng hợp (Aggregation)
B. Kế thừa (Inheritance)
C. Hiệp hội (Association)
D. Đóng gói (Encapsulation)

20. Trong mô hình hóa hướng đối tượng UML, biểu đồ lớp (class diagram) được sử dụng để thể hiện điều gì?

A. Luồng điều khiển của chương trình.
B. Tương tác giữa các đối tượng theo thời gian.
C. Cấu trúc tĩnh của hệ thống, bao gồm các lớp và mối quan hệ giữa chúng.
D. Giao diện người dùng của ứng dụng.

21. Trong lập trình hướng đối tượng, `lớp` (class) đóng vai trò gì?

A. Một thể hiện cụ thể của dữ liệu.
B. Một mẫu thiết kế hoặc bản thiết kế cho các đối tượng.
C. Một hàm hoặc thủ tục.
D. Một biến toàn cục.

22. 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 ảo (Virtual method)

23. Trong OOP, `interface` (giao diện) có vai trò chính là gì?

A. Cung cấp một cách để tạo ra các đối tượng.
B. Định nghĩa một hợp đồng mà các lớp phải tuân theo.
C. Ẩn thông tin chi tiết về triển khai của một lớp.
D. Tăng hiệu suất thực thi của chương trình.

24. Trong lập trình hướng đối tượng, việc sử dụng `composition` (kết hợp) thường được ưu tiên hơn `inheritance` (kế thừa) trong trường hợp nào?

A. Khi cần tái sử dụng mã nguồn một cách tối đa.
B. Khi mô hình hóa mối quan hệ `is-a` (là một).
C. Khi muốn tránh các vấn đề `fragile base class problem` và tăng tính linh hoạt.
D. Khi cần tối ưu hóa hiệu suất chương trình.

25. Một lớp `trừu tượng` (abstract class) khác biệt so với lớp `cụ thể` (concrete class) ở điểm nào?

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

26. Xét đoạn mã giả sau (giả sử ngôn ngữ hỗ trợ OOP):

```
class Animal {
public virtual void Speak() {
print `Tiếng động chung của động vật`;
}
}

class Dog : Animal {
public override void Speak() {
print `Gâu gâu`;
}
}

Animal myAnimal = new Dog();
myAnimal.Speak();
```

Đoạn mã trên minh họa rõ nhất khái niệm nào của lập trình hướng đối tượng?

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

27. Trong lập trình hướng đối tượng, `tính trừu tượng hóa dữ liệu` (data abstraction) khác với `tính trừu tượng điều khiển` (control abstraction) như thế nào?

A. Trừu tượng hóa dữ liệu tập trung vào ẩn chi tiết triển khai của thuật toán, còn trừu tượng hóa điều khiển tập trung vào ẩn chi tiết triển khai của dữ liệu.
B. Trừu tượng hóa dữ liệu tập trung vào ẩn chi tiết triển khai của dữ liệu, còn trừu tượng hóa điều khiển tập trung vào ẩn chi tiết triển khai của thuật toán (luồng điều khiển).
C. Trừu tượng hóa dữ liệu và trừu tượng hóa điều khiển là hai khái niệm hoàn toàn giống nhau trong OOP.
D. Trừu tượng hóa dữ liệu chỉ áp dụng cho lớp trừu tượng, còn trừu tượng hóa điều khiển chỉ áp dụng cho lớp cụ thể.

28. Trong ngữ cảnh `đa hình` (polymorphism), `nạp chồng phương thức` (method overloading) khác với `ghi đè phương thức` (method overriding) như thế nào?

A. Nạp chồng phương thức chỉ áp dụng cho lớp cha, còn ghi đè phương thức chỉ áp dụng cho lớp con.
B. Nạp chồng phương thức xảy ra trong cùng một lớp với các phương thức cùng tên nhưng khác tham số, còn ghi đè phương thức xảy ra giữa lớp cha và lớp con với phương thức cùng tên và cùng tham số.
C. Nạp chồng phương thức là một dạng của kế thừa, còn ghi đè phương thức là một dạng của đóng gói.
D. Nạp chồng phương thức và ghi đè phương thức là hai tên gọi khác nhau của cùng một khái niệm.

29. Khái niệm nào sau đây là trụ cột của lập trình hướng đối tượng, cho phép ẩn thông tin chi tiết bên trong và chỉ hiển thị giao diện 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)

30. Phương pháp tiếp cận lập trình hướng đối tượng tập trung vào việc tổ chức chương trình dựa trên yếu tố nào?

A. Các hàm và thủ tục
B. Dữ liệu và đối tượng
C. Cấu trúc điều khiển và vòng lặp
D. Thuật toán và luồng thực thi

1 / 30

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

Tags: Bộ đề 11

1. Đ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 chứa nó?

2 / 30

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

Tags: Bộ đề 11

2. Mục đích chính của 'design patterns' (mẫu thiết kế) 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ộ đề 11

3. Từ khóa nào thường được sử dụng để thể hiện tính kế thừa trong nhiều ngôn ngữ lập trình hướng đối tượng?

4 / 30

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

Tags: Bộ đề 11

4. Lỗi 'NullPointerException' (hoặc tương đương trong các ngôn ngữ khác) thường xảy ra trong lập trình hướng đối tượng khi nào?

5 / 30

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

Tags: Bộ đề 11

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

6 / 30

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

Tags: Bộ đề 11

6. Thuật ngữ nào mô tả quá trình tạo ra một thể hiện cụ thể của một lớp trong lập trình hướng đối tượng?

7 / 30

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

Tags: Bộ đề 11

7. Loại quan hệ nào thể hiện sự phụ thuộc mạnh mẽ, trong đó một đối tượng là một phần không thể thiếu của đối tượng khác và vòng đời của chúng phụ thuộc lẫn nhau?

8 / 30

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

Tags: Bộ đề 11

8. Trong lập trình hướng đối tượng, 'tính đóng gói' (encapsulation) chủ yếu nhằm mục đích gì?

9 / 30

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

Tags: Bộ đề 11

9. Điều gì KHÔNG phải là lợi ích của việc sử dụng 'interface' (giao diện) trong lập trình hướng đối tượng?

10 / 30

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

Tags: Bộ đề 11

10. Loại truy cập nào cho phép thuộc tính hoặc phương thức của một lớp được truy cập từ bất kỳ đâu, cả bên trong và bên ngoài lớp, cũng như từ 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ộ đề 11

11. Trong ngữ cảnh 'đa hình' (polymorphism), 'ghi đè phương thức' (method overriding) là 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ộ đề 11

12. Nguyên tắc 'SOLID' nào trong lập trình hướng đối tượng khuyến khích việc các lớp nên mở để mở rộng nhưng đóng để sửa đổi?

13 / 30

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

Tags: Bộ đề 11

13. Ư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ì?

14 / 30

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

Tags: Bộ đề 11

14. Điều gì xảy ra khi một lớp con (subclass) kế thừa từ một lớp cha (superclass) trong lập trình hướng đối tượng?

15 / 30

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

Tags: Bộ đề 11

15. Khi nào nên sử dụng 'tính trừu tượng' (abstraction) trong thiết kế phần mềm hướng đối tượng?

16 / 30

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

Tags: Bộ đề 11

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

17 / 30

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

Tags: Bộ đề 11

17. Trong lập trình hướng đối tượng, 'tính kế thừa' mang lại lợi ích chính nào sau đây?

18 / 30

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

Tags: Bộ đề 11

18. Điều gì KHÔNG phải là một nguyên tắc cơ bản của lập trình hướng đối tượng?

19 / 30

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

Tags: Bộ đề 11

19. Mối quan hệ 'is-a' (là một) thường được thể hiện thông qua cơ chế nào trong lập trình hướng đối tượng?

20 / 30

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

Tags: Bộ đề 11

20. Trong mô hình hóa hướng đối tượng UML, biểu đồ lớp (class diagram) được sử dụng để thể hiện điều 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ộ đề 11

21. Trong lập trình hướng đối tượng, 'lớp' (class) đóng vai trò gì?

22 / 30

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

Tags: Bộ đề 11

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

23 / 30

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

Tags: Bộ đề 11

23. Trong OOP, 'interface' (giao diện) có vai trò chính là gì?

24 / 30

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

Tags: Bộ đề 11

24. Trong lập trình hướng đối tượng, việc sử dụng 'composition' (kết hợp) thường được ưu tiên hơn 'inheritance' (kế thừa) trong trường hợp nào?

25 / 30

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

Tags: Bộ đề 11

25. Một lớp 'trừu tượng' (abstract class) khác biệt so với lớp 'cụ thể' (concrete class) ở điểm nào?

26 / 30

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

Tags: Bộ đề 11

26. Xét đoạn mã giả sau (giả sử ngôn ngữ hỗ trợ OOP):

```
class Animal {
public virtual void Speak() {
print 'Tiếng động chung của động vật';
}
}

class Dog : Animal {
public override void Speak() {
print 'Gâu gâu';
}
}

Animal myAnimal = new Dog();
myAnimal.Speak();
```

Đoạn mã trên minh họa rõ nhất khái niệm nào của lập trình hướng đối tượng?

27 / 30

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

Tags: Bộ đề 11

27. Trong lập trình hướng đối tượng, 'tính trừu tượng hóa dữ liệu' (data abstraction) khác với 'tính trừu tượng điều khiển' (control abstraction) như thế 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ộ đề 11

28. Trong ngữ cảnh 'đa hình' (polymorphism), 'nạp chồng phương thức' (method overloading) khác với 'ghi đè phương thức' (method overriding) như thế nào?

29 / 30

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

Tags: Bộ đề 11

29. Khái niệm nào sau đây là trụ cột của lập trình hướng đối tượng, cho phép ẩn thông tin chi tiết bên trong và chỉ hiển thị giao diện cần thiết ra bên ngoài?

30 / 30

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

Tags: Bộ đề 11

30. Phương pháp tiếp cận lập trình hướng đối tượng tập trung vào việc tổ chức chương trình dựa trên yếu tố nào?