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

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

1. Trong OOP, `abstract class` (lớp trừu tượng) là gì?

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

2. Phương thức `getter` và `setter` được sử dụng để làm gì trong OOP?

A. Để tạo ra các đối tượng.
B. Để truy cập và thay đổi giá trị của các thuộc tính private của một lớp, tuân thủ tính đóng gói.
C. Để thực hiện các hành động trên một đối tượng.
D. Để định nghĩa cấu trúc của một lớp.

3. Trong OOP, `composition` (hợp thành) là một dạng đặc biệt của mối quan hệ nào?

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

4. Trong OOP, `constructor` (hàm tạo) có vai trò gì?

A. Hủy bỏ một đối tượng.
B. Khởi tạo một đối tượng khi nó được tạo ra.
C. Thực hiện các hành động trên một đối tượng.
D. Định nghĩa cấu trúc của một lớp.

5. Khái niệm nào sau đây mô tả việc một lớp có nhiều phương thức cùng tên nhưng khác nhau về tham số?

A. Method overriding (Ghi đè phương thức)
B. Method overloading (Nạp chồng phương thức)
C. Inheritance (Kế thừa)
D. Encapsulation (Đóng gói)

6. Đặc điểm nào sau đây KHÔNG phải là một lợi ích chính của lập trình hướng đối tượng (OOP)?

A. Tính đóng gói (Encapsulation)
B. Tính kế thừa (Inheritance)
C. Tính đa hình (Polymorphism)
D. Tăng tốc độ biên dịch chương trình

7. Trong lập trình hướng đối tượng, `tính đóng gói` (encapsulation) đề cập đến điều gì?

A. Khả năng một đối tượng có nhiều hình thức khác nhau.
B. Cơ chế 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.
C. Việc kết hợp dữ liệu (thuộc tính) và phương thức thao tác trên dữ liệu đó vào trong một đơn vị duy nhất (lớp), đồng thời che giấu các chi tiết triển khai bên trong đối tượng.
D. Khả năng thực hiện nhiều tác vụ đồng thời.

8. Trong OOP, `delegation` (ủy quyền) là gì?

A. Một đối tượng chuyển trách nhiệm thực hiện một hành động cho một đối tượng khác.
B. Một đối tượng kế thừa các thuộc tính và phương thức từ một đối tượng khác.
C. Một đối tượng ẩn các thuộc tính và phương thức của nó khỏi các đối tượng khác.
D. Một đối tượng thực hiện nhiều hành động khác nhau tùy thuộc vào ngữ cảnh.

9. Sự khác biệt chính giữa `aggregation` (tập hợp) và `composition` (hợp thành) trong OOP là gì?

A. Aggregation là một dạng của inheritance, còn composition là một dạng của polymorphism.
B. Trong aggregation, đối tượng thành phần có thể tồn tại độc lập với đối tượng chứa nó, trong khi trong composition, đối tượng thành phần không thể tồn tại nếu đối tượng chứa nó bị hủy.
C. Aggregation chỉ áp dụng cho các lớp trừu tượng, còn composition chỉ áp dụng cho các lớp cụ thể.
D. Aggregation và composition là hai khái niệm hoàn toàn giống nhau.

10. Sự khác biệt chính giữa `class` (lớp) và `object` (đối tượng) là gì?

A. Class là một thể hiện cụ thể, còn object là một bản thiết kế.
B. Class là một bản thiết kế, còn object là một thể hiện cụ thể của class.
C. Class chỉ chứa dữ liệu, còn object chỉ chứa phương thức.
D. Class và object là hai khái niệm hoàn toàn giống nhau.

11. Khái niệm nào sau đây mô tả việc tạo ra một đối tượng (instance) từ một lớp (class)?

A. Kế thừa (Inheritance)
B. Đóng gói (Encapsulation)
C. Khởi tạo (Instantiation)
D. Đa hình (Polymorphism)

12. Trong OOP, `lớp` (class) đóng vai trò gì?

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

13. Đâu là một nhược điểm tiềm ẩn của việc sử dụng kế thừa (inheritance) quá mức trong thiết kế OOP?

A. Tăng tính đóng gói.
B. Giảm sự phức tạp của mã.
C. Tạo ra một hệ thống phân cấp lớp phức tạp và khó bảo trì, dẫn đến vấn đề `fragile base class`.
D. Tăng tính đa hình.

14. Phương pháp nào sau đây thể hiện `tính kế thừa` (inheritance) trong lập trình hướng đối tượng?

A. Một lớp có thể có nhiều đối tượng (instance).
B. Một lớp có thể ẩn các thuộc tính và phương thức của nó khỏi các lớp khác.
C. Một lớp mới (lớp con) có thể kế thừa các thuộc tính và phương thức từ một lớp đã tồn tại (lớp cha).
D. Một lớp có thể thực hiện nhiều hành động khác nhau tùy thuộc vào ngữ cảnh.

15. Trong OOP, `association` (kết hợp) mô tả mối quan hệ nào giữa các lớp?

A. Mối quan hệ `là một` (is-a).
B. Mối quan hệ `có một` (has-a).
C. Mối quan hệ giữa một lớp và các đối tượng của nó.
D. Mối quan hệ giữa một lớp và giao diện của nó.

16. Trong ngữ cảnh của OOP, `package` (gói) được sử dụng để làm gì?

A. Để tạo ra các đối tượng.
B. Để nhóm các lớp có liên quan lại với nhau, giúp tổ chức và quản lý mã nguồn tốt hơn.
C. Để định nghĩa các thuộc tính của một lớp.
D. Để thực hiện các hành động trên một đối tượng.

17. Trong OOP, `tính trừu tượng` (abstraction) là gì?

A. Việc che giấu các chi tiết triển khai phức tạp và chỉ hiển thị các thông tin cần thiết cho người dùng.
B. Việc tạo ra nhiều đối tượng từ một lớp.
C. Việc kế thừa các thuộc tính và phương thức từ một lớp khác.
D. Việc thực hiện nhiều hành động khác nhau tùy thuộc vào ngữ cảnh.

18. Thuộc tính (attribute) của một lớp (class) trong OOP còn được gọi là gì?

A. Phương thức (method)
B. Biến thành viên (member variable)
C. Đối tượng (object)
D. Giao diện (interface)

19. Phương thức (method) trong một lớp (class) có chức năng gì?

A. Lưu trữ dữ liệu của đối tượng.
B. Định nghĩa cấu trúc của đối tượng.
C. Thực hiện các hành động hoặc thao tác trên đối tượng.
D. Xác định mối quan hệ giữa các đối tượng.

20. Lợi ích chính của việc sử dụng `design patterns` (mẫu thiết kế) trong OOP là gì?

A. Để tăng tốc độ biên dịch chương trình.
B. Để giải quyết các vấn đề thiết kế phần mềm thường gặp một cách hiệu quả và đã được kiểm chứng.
C. Để ẩn các thuộc tính và phương thức của một lớp.
D. Để tạo ra các đối tượng một cách ngẫu nhiên.

21. Trong lập trình hướng đối tượng, khi nào nên sử dụng Dependency Injection (DI)?

A. Khi muốn tạo ra các đối tượng một cách nhanh chóng.
B. Khi muốn giảm sự phụ thuộc giữa các lớp, giúp tăng tính linh hoạt và khả năng kiểm thử của ứng dụng.
C. Khi muốn ẩn các thuộc tính và phương thức của một lớp.
D. Khi muốn tăng tốc độ biên dịch chương trình.

22. Trong OOP, `mixin` là gì?

A. Một lớp chỉ chứa các thuộc tính.
B. Một lớp chỉ chứa các phương thức.
C. Một lớp cung cấp một tập hợp các phương thức có thể được `trộn` vào các lớp khác để thêm chức năng.
D. Một lớp không thể tạo ra đối tượng.

23. Trong OOP, `visibility modifiers` (bộ điều khiển truy cập) như `private`, `protected`, và `public` được sử dụng để làm gì?

A. Để định nghĩa kiểu dữ liệu của các thuộc tính.
B. Để kiểm soát quyền truy cập vào các thuộc tính và phương thức của một lớp.
C. Để tạo ra các đối tượng.
D. Để thực hiện các hành động trên một đối tượng.

24. Mục đích chính của việc sử dụng `interface` (giao diện) trong OOP là gì?

A. Để tạo ra các đối tượng.
B. Để định nghĩa các thuộc tính của một lớp.
C. Để định nghĩa một tập hợp các phương thức mà một lớp phải thực hiện, đảm bảo tính nhất quán giữa các lớp khác nhau.
D. Để ẩn các thuộc tính và phương thức của một lớp.

25. Khi nào nên sử dụng `static method` (phương thức tĩnh) trong một lớp (class)?

A. Khi phương thức cần truy cập các thuộc tính của đối tượng.
B. Khi phương thức cần thực hiện các hành động trên đối tượng.
C. Khi phương thức không cần truy cập bất kỳ thuộc tính nào của đối tượng và có thể được gọi trực tiếp từ lớp.
D. Khi phương thức cần được ghi đè bởi các lớp con.

26. Mục đích của việc sử dụng `factory pattern` (mẫu thiết kế nhà máy) trong OOP là gì?

A. Để tạo ra các đối tượng một cách trực tiếp.
B. Để che giấu các chi tiết triển khai phức tạp.
C. Để tạo ra các đối tượng mà không cần chỉ định lớp cụ thể của đối tượng sẽ được tạo.
D. Để thực hiện các hành động trên một đối tượng.

27. Trong OOP, `tính đa hình` (polymorphism) 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 lớp có nhiều thuộc tính khác nhau.
C. Khả năng một đối tượng có thể thể hiện nhiều hình thức khác nhau, hoặc một phương thức có thể 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 thực hiện nhiều tác vụ đồng thời.

28. Lớp nào sau đây là lớp cơ sở cho tất cả các lớp khác trong nhiều ngôn ngữ lập trình hướng đối tượng, ví dụ như Java?

A. String
B. Object
C. Integer
D. Array

29. Trong OOP, `late binding` (liên kết muộn) hay `dynamic binding` (liên kết động) đề cập đến điều gì?

A. Việc xác định kiểu dữ liệu của một biến tại thời điểm biên dịch.
B. Việc xác định phương thức nào sẽ được gọi tại thời điểm chạy chương trình, dựa trên kiểu thực tế của đối tượng.
C. Việc liên kết một lớp với một đối tượng tại thời điểm tạo đối tượng.
D. Việc liên kết một thuộc tính với một phương thức tại thời điểm biên dịch.

30. Phương thức nào sau đây cho phép một lớp con (subclass) ghi đè (override) một phương thức của lớp cha (superclass)?

A. Tính đóng gói (Encapsulation)
B. Tính kế thừa (Inheritance)
C. Tính đa hình (Polymorphism)
D. Ghi đè phương thức (Method overriding)

1 / 30

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

Tags: Bộ đề 1

1. Trong OOP, 'abstract class' (lớp trừu tượng) là gì?

2 / 30

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

Tags: Bộ đề 1

2. Phương thức 'getter' và 'setter' được sử dụng để làm gì trong OOP?

3 / 30

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

Tags: Bộ đề 1

3. Trong OOP, 'composition' (hợp thành) là một dạng đặc biệt của mối quan hệ nào?

4 / 30

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

Tags: Bộ đề 1

4. Trong OOP, 'constructor' (hàm tạo) có vai trò gì?

5 / 30

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

Tags: Bộ đề 1

5. Khái niệm nào sau đây mô tả việc một lớp có nhiều phương thức cùng tên nhưng khác nhau về tham số?

6 / 30

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

Tags: Bộ đề 1

6. Đặc điểm nào sau đây KHÔNG phải là một lợi ích chính của lập trình hướng đối tượng (OOP)?

7 / 30

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

Tags: Bộ đề 1

7. Trong lập trình hướng đối tượng, 'tính đóng gói' (encapsulation) đề cập đến điều gì?

8 / 30

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

Tags: Bộ đề 1

8. Trong OOP, 'delegation' (ủy quyền) là gì?

9 / 30

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

Tags: Bộ đề 1

9. Sự khác biệt chính giữa 'aggregation' (tập hợp) và 'composition' (hợp thành) trong OOP là gì?

10 / 30

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

Tags: Bộ đề 1

10. Sự khác biệt chính giữa 'class' (lớp) và 'object' (đối tượng) là gì?

11 / 30

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

Tags: Bộ đề 1

11. Khái niệm nào sau đây mô tả việc tạo ra một đối tượng (instance) từ một lớp (class)?

12 / 30

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

Tags: Bộ đề 1

12. Trong OOP, 'lớp' (class) đóng vai trò gì?

13 / 30

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

Tags: Bộ đề 1

13. Đâu là một nhược điểm tiềm ẩn của việc sử dụng kế thừa (inheritance) quá mức trong thiết kế OOP?

14 / 30

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

Tags: Bộ đề 1

14. Phương pháp nào sau đây thể hiện 'tính kế thừa' (inheritance) trong lập trình hướng đối tượng?

15 / 30

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

Tags: Bộ đề 1

15. Trong OOP, 'association' (kết hợp) mô tả mối quan hệ nào giữa các lớp?

16 / 30

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

Tags: Bộ đề 1

16. Trong ngữ cảnh của OOP, 'package' (gói) được sử dụng để làm gì?

17 / 30

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

Tags: Bộ đề 1

17. Trong OOP, 'tính trừu tượng' (abstraction) là gì?

18 / 30

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

Tags: Bộ đề 1

18. Thuộc tính (attribute) của một lớp (class) trong OOP còn được gọi là gì?

19 / 30

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

Tags: Bộ đề 1

19. Phương thức (method) trong một lớp (class) có chức năng gì?

20 / 30

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

Tags: Bộ đề 1

20. Lợi ích chính của việc sử dụng 'design patterns' (mẫu thiết kế) trong OOP là gì?

21 / 30

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

Tags: Bộ đề 1

21. Trong lập trình hướng đối tượng, khi nào nên sử dụng Dependency Injection (DI)?

22 / 30

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

Tags: Bộ đề 1

22. Trong OOP, 'mixin' là gì?

23 / 30

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

Tags: Bộ đề 1

23. Trong OOP, 'visibility modifiers' (bộ điều khiển truy cập) như 'private', 'protected', và 'public' được sử dụng để làm gì?

24 / 30

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

Tags: Bộ đề 1

24. Mục đích chính của việc sử dụng 'interface' (giao diện) trong OOP là gì?

25 / 30

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

Tags: Bộ đề 1

25. Khi nào nên sử dụng 'static method' (phương thức tĩnh) trong một lớp (class)?

26 / 30

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

Tags: Bộ đề 1

26. Mục đích của việc sử dụng 'factory pattern' (mẫu thiết kế nhà máy) trong OOP là gì?

27 / 30

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

Tags: Bộ đề 1

27. Trong OOP, 'tính đa hình' (polymorphism) nghĩa là gì?

28 / 30

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

Tags: Bộ đề 1

28. Lớp nào sau đây là lớp cơ sở cho tất cả các lớp khác trong nhiều ngôn ngữ lập trình hướng đối tượng, ví dụ như Java?

29 / 30

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

Tags: Bộ đề 1

29. Trong OOP, 'late binding' (liên kết muộn) hay 'dynamic binding' (liên kết động) đề cập đến điều gì?

30 / 30

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

Tags: Bộ đề 1

30. Phương thức nào sau đây cho phép một lớp con (subclass) ghi đè (override) một phương thức của lớp cha (superclass)?