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

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

1. Phương thức 'constructor′ trong lập trình hướng đối tượng có chức năng chính là gì?

A. Hủy bỏ đối tượng khi không còn sử dụng
B. Khởi tạo trạng thái ban đầu cho đối tượng khi nó được tạo ra
C. Gọi một phương thức khác trong đối tượng
D. Thay đổi kiểu dữ liệu của đối tượng

2. Đ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ó trong OOP?

A. Truy cập sẽ thành công và trả về giá trị của thuộc tính.
B. Sẽ gây ra lỗi biên dịch hoặc lỗi thời gian chạy (tùy ngôn ngữ).
C. Thuộc tính sẽ tự động chuyển thành 'public′.
D. Giá trị mặc định của thuộc tính sẽ được trả về.

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

A. Tăng hiệu suất thực thi chương trình.
B. Cho phép đa kế thừa hành vi (multiple inheritance of behavior).
C. Giảm độ phức tạp của mã nguồn.
D. Tăng cường tính đóng gói.

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

A. Một lớp trừu tượng
B. Một bản thiết kế của lớp
C. Một thể hiện cụ thể của một lớp
D. Một phương thức tĩnh

5. Trong lập trình hướng đối tượng, 'message passing′ (truyền thông điệp) đề cập đến điều gì?

A. Việc gửi email giữa các đối tượng.
B. Việc các đối tượng tương tác với nhau bằng cách gọi phương thức của nhau.
C. Việc chia sẻ dữ liệu trực tiếp giữa các đối tượng.
D. Việc sử dụng biến toàn cục để giao tiếp giữa các phần của chương trình.

6. Trong OOP, 'method′ (phương thức) được hiểu là gì?

A. Một thuộc tính của đối tượng.
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.
D. Một lớp cha của đối tượng.

7. Trong OOP, 'đa hình′ (polymorphism) nghĩa là gì?

A. Khả năng của một đối tượng có nhiều thuộc tính
B. Khả năng của một phương thức được định nghĩa trong nhiều lớp khác nhau
C. Khả năng của các đối tượng thuộc các lớp khác nhau phản ứng với cùng một thông điệp theo những cách khác nhau
D. Khả năng của một lớp có nhiều lớp con

8. Khi thiết kế lớp, nên ưu tiên 'composition′ (tổng hợp) hơn 'inheritance′ (kế thừa) trong trường hợp nào?

A. Khi muốn tái sử dụng mã nguồn một cách tối đa.
B. Khi mối quan hệ giữa các lớp là 'has-a′ (có một) thay vì 'is-a′ (là một).
C. Khi cần hiện thực đa hình.
D. Khi muốn tạo ra các lớp trừu tượng.

9. Phương thức nào sau đây được gọi khi một đối tượng không còn được tham chiếu và chuẩn bị được thu hồi bộ nhớ trong một số ngôn ngữ OOP?

A. Constructor
B. Destructor
C. Getter
D. Setter

10. Lợi ích của việc sử dụng 'polymorphism′ (đa hình) trong thiết kế phần mềm là gì?

A. Giảm kích thước chương trình.
B. Tăng tính linh hoạt và khả năng mở rộng của hệ thống.
C. Tăng tốc độ biên dịch chương trình.
D. Đơn giản hóa việc quản lý bộ nhớ.

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

A. Tăng tính 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 độ thực thi chương trình
D. Cải thiện khả năng bảo trì và mở rộng

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

A. Để tạo và hủy đối tượng.
B. Để kiểm soát truy cập và sửa đổi các thuộc tính 'private′ của đối tượng.
C. Để thực hiện đa hình.
D. Để định nghĩa lớp trừu tượng.

13. Trong ngữ cảnh của OOP, 'composition′ (tổng hợp) và 'aggregation′ (kết hợp) khác nhau như thế nào?

A. Composition là mối quan hệ 'is-a′, aggregation là mối quan hệ 'has-a′.
B. Composition thể hiện mối quan hệ sở hữu mạnh mẽ (whole-part), aggregation thể hiện mối quan hệ sở hữu lỏng lẻo hơn.
C. Composition chỉ sử dụng cho lớp trừu tượng, aggregation chỉ sử dụng cho lớp cụ thể.
D. Không có sự khác biệt đáng kể giữa composition và aggregation.

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

A. Một thể hiện cụ thể của đố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 đặc biệt trong đối tượng
D. Một biến toàn cục được sử dụng trong chương trình

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

A. Single Responsibility Principle (Nguyên tắc đơn nhiệm)
B. Open∕Closed Principle (Nguyên tắc đóng∕mở)
C. Don′t Repeat Yourself (DRY) (Nguyên tắc không lặp lại)
D. Liskov Substitution Principle (Nguyên tắc thay thế Liskov)

16. Điều gì KHÔNG phải là một lợi ích của 'encapsulation′ (đóng gói)?

A. Giảm sự phụ thuộc lẫn nhau giữa các phần của chương trình.
B. Dễ dàng thay đổi cách hiện thực bên trong lớp mà không ảnh hưởng đến bên ngoài.
C. Tăng tốc độ phát triển phần mềm.
D. Cho phép truy cập trực tiếp vào dữ liệu từ bất kỳ đâu trong chương trình.

17. Sự khác biệt chính giữa 'overloading′ (nạp chồng) và 'overriding′ (ghi đè) phương thức trong OOP là gì?

A. Overloading áp dụng cho lớp cha, overriding áp dụng cho lớp con.
B. Overloading xảy ra trong cùng một lớp, overriding xảy ra giữa lớp cha và lớp con.
C. Overloading thay đổi chức năng của phương thức, overriding giữ nguyên chức năng.
D. Overloading liên quan đến tính trừu tượng, overriding liên quan đến tính đóng gói.

18. Khái niệm nào sau đây 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)

19. Nguyên tắc 'Dependency Inversion Principle′ (DIP) trong SOLID nhấn mạnh điều gì?

A. Các lớp cấp cao không nên phụ thuộc vào các lớp cấp thấp, cả hai nên phụ thuộc vào trừu tượng.
B. Một 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ế cho lớp cha mà không làm thay đổi tính đúng đắn của chương trình.
D. Phần mềm nên mở cho mở rộng nhưng đóng cho sửa đổi.

20. Khái niệm nào trong OOP cho phép bạn định nghĩa một lớp trừu tượng mà các lớp con phải hiện thực hóa các phương thức trừu tượng của nó?

A. Đóng gói (Encapsulation)
B. Lớp trừu tượng (Abstract class)
C. Đa hình (Polymorphism)
D. Kế thừa (Inheritance)

21. Khái niệm 'inheritance′ (kế thừa) giúp đạt được mục tiêu nào sau đây trong lập trình?

A. Tăng tính đóng gói.
B. Tái sử dụng mã nguồn và thiết lập hệ thống phân cấp lớp.
C. Hiện thực đa hình.
D. Ẩn thông tin chi tiết.

22. Điều gì xảy ra nếu một lớp con không ghi đè (override) một phương thức trừu tượng từ lớp cha trừu tượng?

A. Lớp con sẽ kế thừa hiện thực mặc định của phương thức trừu tượng.
B. Lớp con cũng phải là một lớp trừu tượng.
C. Chương trình sẽ biên dịch thành công nhưng gây ra lỗi thời gian chạy.
D. Lớp con sẽ không thể tạo đối tượng.

23. Khi nào thì việc sử dụng lập trình hướng đối tượng trở nên đặc biệt hữu ích?

A. Khi viết các chương trình nhỏ, đơn giản.
B. Khi cần phát triển các hệ thống phần mềm lớn và phức tạp.
C. Khi tập trung vào hiệu suất thực thi tối đa.
D. Khi làm việc với các ngôn ngữ lập trình thủ tục.

24. Trong OOP, 'association′ (kết hợp) là gì?

A. Một loại kế thừa đặc biệt.
B. Một mối quan hệ 'has-a′ giữa các đối tượng, nơi chúng có thể tồn tại độc lập.
C. Một mối quan hệ 'is-a′ giữa các lớp.
D. Một cách để ẩn thông tin trong đối tượng.

25. Mục đích chính của việc sử dụng 'tính đóng gói′ (encapsulation) là gì?

A. Tăng tốc độ truy cập dữ liệu
B. Ẩn giấu thông tin và bảo vệ dữ liệu khỏi sự truy cập không mong muốn
C. Cho phép kế thừa giữa các lớp
D. Tạo ra các đối tượng phức tạp

26. Trong OOP, 'access modifiers′ (bộ điều khiển truy cập) như 'public′, 'private′, 'protected′ dùng để làm gì?

A. Định nghĩa kiểu dữ liệu của thuộc tính.
B. Kiểm soát mức độ truy cập đến các thành viên (thuộc tính, phương thức) của lớp.
C. Tối ưu hóa hiệu suất của phương thức.
D. Khai báo lớp trừu tượng.

27. Tính chất nào cho phép 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. Kế thừa (Inheritance)
D. Trừu tượng (Abstraction)

28. Trong OOP, mối quan hệ 'is-a′ thường được thể hiện thông qua cơ chế nào?

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

29. Trong OOP, 'abstraction′ (trừu tượng) giúp nhà phát triển tập trung vào điều gì?

A. Chi tiết cài đặt cụ thể của đối tượng.
B. Các hành vi và đặc điểm thiết yếu của đối tượng, bỏ qua chi tiết không cần thiết.
C. Tối ưu hóa hiệu suất của đối tượng.
D. Quản lý bộ nhớ của đối tượng.

30. Mục đích của nguyên tắc 'Open∕Closed Principle′ (OCP) trong SOLID là gì?

A. Các lớp nên có một và chỉ một lý do để thay đổi.
B. Phần mềm nên mở cho mở rộng nhưng đóng cho sửa đổ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. Phụ thuộc vào trừu tượng, không phụ thuộc vào chi tiết.

1 / 30

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

Tags: Bộ đề 10

1. Phương thức `constructor′ trong lập trình hướng đối tượng có chức năng chính là gì?

2 / 30

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

Tags: Bộ đề 10

2. Đ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ó trong OOP?

3 / 30

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

Tags: Bộ đề 10

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

4 / 30

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

Tags: Bộ đề 10

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

5 / 30

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

Tags: Bộ đề 10

5. Trong lập trình hướng đối tượng, `message passing′ (truyền thông điệp) đề cập đến điều gì?

6 / 30

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

Tags: Bộ đề 10

6. Trong OOP, `method′ (phương thức) được hiểu là gì?

7 / 30

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

Tags: Bộ đề 10

7. Trong OOP, `đa hình′ (polymorphism) nghĩa là gì?

8 / 30

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

Tags: Bộ đề 10

8. Khi thiết kế lớp, nên ưu tiên `composition′ (tổng hợp) hơn `inheritance′ (kế thừa) trong trường hợp nào?

9 / 30

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

Tags: Bộ đề 10

9. Phương thức nào sau đây được gọi khi một đối tượng không còn được tham chiếu và chuẩn bị được thu hồi bộ nhớ trong một số ngôn ngữ OOP?

10 / 30

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

Tags: Bộ đề 10

10. Lợi ích của việc sử dụng `polymorphism′ (đa hình) trong thiết kế phần mềm là gì?

11 / 30

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

Tags: Bộ đề 10

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

12 / 30

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

Tags: Bộ đề 10

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

13 / 30

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

Tags: Bộ đề 10

13. Trong ngữ cảnh của OOP, `composition′ (tổng hợp) và `aggregation′ (kết hợp) khác nhau như thế nào?

14 / 30

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

Tags: Bộ đề 10

14. Trong lập trình hướng đối tượng, `class′ được hiểu là gì?

15 / 30

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

Tags: Bộ đề 10

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

16 / 30

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

Tags: Bộ đề 10

16. Điều gì KHÔNG phải là một lợi ích của `encapsulation′ (đóng gói)?

17 / 30

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

Tags: Bộ đề 10

17. Sự khác biệt chính giữa `overloading′ (nạp chồng) và `overriding′ (ghi đè) phương thức trong OOP là gì?

18 / 30

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

Tags: Bộ đề 10

18. Khái niệm nào sau đây 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?

19 / 30

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

Tags: Bộ đề 10

19. Nguyên tắc `Dependency Inversion Principle′ (DIP) trong SOLID nhấn mạnh điều gì?

20 / 30

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

Tags: Bộ đề 10

20. Khái niệm nào trong OOP cho phép bạn định nghĩa một lớp trừu tượng mà các lớp con phải hiện thực hóa các phương thức trừu tượng của nó?

21 / 30

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

Tags: Bộ đề 10

21. Khái niệm `inheritance′ (kế thừa) giúp đạt được mục tiêu nào sau đây trong lập trình?

22 / 30

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

Tags: Bộ đề 10

22. Điều gì xảy ra nếu một lớp con không ghi đè (override) một phương thức trừu tượng từ lớp cha trừu tượng?

23 / 30

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

Tags: Bộ đề 10

23. Khi nào thì việc sử dụng lập trình hướng đối tượng trở nên đặc biệt hữu ích?

24 / 30

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

Tags: Bộ đề 10

24. Trong OOP, `association′ (kết hợp) là gì?

25 / 30

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

Tags: Bộ đề 10

25. Mục đích chính của việc sử dụng `tính đóng gói′ (encapsulation) là gì?

26 / 30

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

Tags: Bộ đề 10

26. Trong OOP, `access modifiers′ (bộ điều khiển truy cập) như `public′, `private′, `protected′ dùng để làm gì?

27 / 30

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

Tags: Bộ đề 10

27. Tính chất nào cho phép 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)?

28 / 30

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

Tags: Bộ đề 10

28. Trong OOP, mối quan hệ `is-a′ thường được thể hiện thông qua cơ chế nào?

29 / 30

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

Tags: Bộ đề 10

29. Trong OOP, `abstraction′ (trừu tượng) giúp nhà phát triển tập trung vào điều gì?

30 / 30

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

Tags: Bộ đề 10

30. Mục đích của nguyên tắc `Open∕Closed Principle′ (OCP) trong SOLID là gì?