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

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

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

1. Thuật ngữ `instance` (thể hiện) trong OOP dùng để chỉ điều gì?

A. Một class trừu tượng
B. Một đối tượng cụ thể được tạo ra từ một class
C. Một phương thức tĩnh trong class
D. Một mối quan hệ kế thừa giữa các class

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

A. Tăng tốc độ truy cập thuộc tính
B. Kiểm soát việc truy cập và sửa đổi thuộc tính của đối tượng
C. Giảm thiểu việc sử dụng bộ nhớ
D. Ẩn các phương thức của đối tượng

3. Điều gì KHÔNG phải là lợi ích của việc sử dụng OOP?

A. Tái sử dụng mã nguồn
B. Tăng tốc độ phát triển phần mềm
C. Cải thiện hiệu suất chương trình
D. Dễ bảo trì và mở rộng hệ thống

4. Phương pháp `Unit Testing` (kiểm thử đơn vị) trong OOP tập trung vào việc kiểm thử điều gì?

A. Toàn bộ hệ thống phần mềm
B. Các class và phương thức riêng lẻ
C. Giao diện người dùng
D. Hiệu suất của chương trình

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

A. Tính đóng gói (Encapsulation)
B. Tính trừu tượng (Abstraction)
C. Tính đa hình (Polymorphism)
D. Tính tuần tự (Sequential)

6. Nguyên tắc `Open/Closed Principle` (OCP) trong SOLID khuyến khích điều gì?

A. Mỗi class nên có một và chỉ một lý do để thay đổi
B. Các class nên mở để mở rộng nhưng đóng để sửa đổi
C. Các class con có thể thay thế class cha mà không làm thay đổi tính đúng đắn của chương trình
D. Nhiều interface đặc thù tốt hơn là một interface đa năng

7. Trong OOP, `composition` (tổ hợp) khác với `inheritance` (kế thừa) như thế nào?

A. Composition tạo ra mối quan hệ `is-a`, còn inheritance tạo ra mối quan hệ `has-a`
B. Inheritance tạo ra mối quan hệ `is-a`, còn composition tạo ra mối quan hệ `has-a`
C. Composition chỉ áp dụng cho dữ liệu, còn inheritance chỉ áp dụng cho phương thức
D. Inheritance cho phép tái sử dụng mã, còn composition thì không

8. Interface trong OOP được sử dụng để làm gì?

A. Thay thế cho class trừu tượng
B. Định nghĩa một tập hợp các phương thức mà các class khác phải cài đặt
C. Tăng cường tính đóng gói
D. Cho phép đa kế thừa

9. Trong OOP, `association`, `aggregation`, và `composition` là các loại quan hệ nào giữa các class?

A. Quan hệ kế thừa
B. Quan hệ phụ thuộc
C. Quan hệ sử dụng
D. Quan hệ giữa các đối tượng

10. Nguyên tắc `Interface Segregation Principle` (ISP) trong SOLID đề xuất điều gì?

A. Mỗi class nên có một và chỉ một lý do để thay đổi
B. Các class nên mở để mở rộng nhưng đóng để sửa đổi
C. Các class con có thể thay thế class cha mà không làm thay đổi tính đúng đắn của chương trình
D. Nhiều interface đặc thù tốt hơn là một interface đa năng

11. Nguyên tắc `Liskov Substitution Principle` (LSP) trong SOLID liên quan đến vấn đề gì?

A. Tính đóng gói
B. Tính kế thừa
C. Tính trừu tượng
D. Tính đa hình

12. `Dependency Injection` (DI - Tiêm phụ thuộc) là một kỹ thuật thiết kế giúp đạt được mục tiêu chính nào trong OOP?

A. Tăng tốc độ thực thi chương trình
B. Giảm coupling (sự phụ thuộc) giữa các class
C. Tăng cohesion (sự liên kết) bên trong class
D. Giảm thiểu dung lượng mã nguồn

13. Mục đí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 độ thực thi chương trình
B. Cung cấp các giải pháp đã được kiểm chứng cho các vấn đề thiết kế phần mềm thường gặp
C. Giảm thiểu dung lượng mã nguồn
D. Tự động hóa quá trình kiểm thử phần mềm

14. Mẫu thiết kế `Factory` trong OOP được sử dụng để giải quyết vấn đề gì?

A. Quản lý vòng đời của đối tượng
B. Tạo đối tượng một cách linh hoạt mà không cần biết class cụ thể cần tạo
C. Đảm bảo tính duy nhất của đối tượng
D. Thực hiện các phép tính toán phức tạp trên đối tượng

15. Tính kế thừa (Inheritance) trong OOP cho phép điều gì?

A. Tạo ra các đối tượng độc lập hoàn toàn
B. Một class có thể kế thừa các thuộc tính và phương thức từ class khác
C. Giảm sự phụ thuộc giữa các class
D. Tăng tính phức tạp của mã nguồn

16. Phương thức trừu tượng (abstract method) là gì?

A. Phương thức được thực thi ngay khi đối tượng được tạo ra
B. Phương thức không có phần thân (body) và phải được cài đặt (implement) ở class con
C. Phương thức chỉ có thể được gọi từ bên trong class
D. Phương thức không thể bị ghi đè (override) ở class con

17. Lỗi `NullPointerException` thường xảy ra trong OOP do nguyên nhân nào?

A. Truy cập vào một biến static chưa được khởi tạo
B. Truy cập vào một đối tượng tham chiếu null
C. Sử dụng toán tử gán (=) thay vì toán tử so sánh (==)
D. Gọi một phương thức trừu tượng mà không có cài đặt

18. Tính đóng gói (Encapsulation) trong OOP mang lại lợi ích nào sau đây?

A. Tăng tốc độ thực thi chương trình
B. Giảm thiểu việc sử dụng bộ nhớ
C. Che giấu thông tin và bảo vệ dữ liệu khỏi truy cập trái phép
D. Cho phép kế thừa đa class

19. 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 cho các đối tượng
C. Một phương thức để ẩn dữ liệu
D. Một cách để thực hiện đa hình

20. Tính đa hình (Polymorphism) trong OOP có nghĩa là gì?

A. Một đối tượng có nhiều thuộc tính
B. Một phương thức có thể được định nghĩa trong nhiều class
C. Các đối tượng thuộc các class khác nhau có thể được xử lý thông qua một interface chung
D. Một class có thể kế thừa từ nhiều class khác

21. Sự khác biệt chính giữa `abstract class` và `interface` trong OOP là gì?

A. Abstract class có thể chứa thuộc tính, còn interface thì không
B. Class có thể kế thừa từ nhiều abstract class, nhưng chỉ implement được một interface
C. Abstract class có thể chứa cài đặt phương thức (method implementation), còn interface thì không (trước Java 8)
D. Interface có thể có constructor, còn abstract class thì không

22. Nguyên tắc `Dependency Inversion Principle` (DIP) trong SOLID tập trung vào việc giảm sự phụ thuộc giữa các module như thế nào?

A. Bằng cách sử dụng kế thừa
B. Bằng cách sử dụng interface hoặc class trừu tượng để các module cấp cao không phụ thuộc vào module cấp thấp
C. Bằng cách tăng cường tính đóng gói
D. Bằng cách giảm thiểu số lượng class trong hệ thống

23. Mẫu thiết kế `Singleton` trong OOP đảm bảo điều gì?

A. Chỉ có một instance duy nhất của một class được tạo ra
B. Class có thể kế thừa từ nhiều class khác
C. Các đối tượng được tạo ra một cách tuần tự
D. Việc truy cập vào đối tượng được đồng bộ hóa

24. Trong lập trình hướng đối tượng, `coupling` (kết nối) và `cohesion` (liên kết) là gì và mối quan hệ giữa chúng?

A. Coupling là mức độ liên kết bên trong một module, cohesion là mức độ phụ thuộc giữa các module; nên tăng coupling và giảm cohesion
B. Coupling là mức độ phụ thuộc giữa các module, cohesion là mức độ liên kết bên trong một module; nên giảm coupling và tăng cohesion
C. Coupling và cohesion đều là mức độ liên kết bên trong module; nên tăng cả hai
D. Coupling và cohesion đều là mức độ phụ thuộc giữa các module; nên giảm cả hai

25. Khi nào nên sử dụng `composition` thay vì `inheritance` trong thiết kế OOP?

A. Khi muốn tái sử dụng mã nguồn nhiều nhất có thể
B. Khi muốn tạo ra mối quan hệ `is-a` giữa các class
C. Khi muốn tạo ra mối quan hệ `has-a` và tránh các vấn đề của kế thừa sâu
D. Khi muốn tăng tính đa hình

26. Nguyên tắc `SOLID` trong OOP là tập hợp các nguyên tắc thiết kế hướng đến mục tiêu nào?

A. Tăng tốc độ thực thi chương trình
B. Giảm thiểu dung lượng mã nguồn
C. Thiết kế phần mềm dễ bảo trì, mở rộng và linh hoạt
D. Tối ưu hóa việc sử dụng bộ nhớ

27. Phương thức khởi tạo (constructor) trong class có vai trò chính là gì?

A. Hủy bỏ đối tượng khi không còn sử dụng
B. Khởi tạo các thuộc tính của đối tượng khi đối tượng được tạo ra
C. Định nghĩa các phương thức của đối tượng
D. Thực hiện các phép tính toán trên đối tượng

28. Trong ngữ cảnh OOP, `method overriding` (ghi đè phương thức) được thực hiện khi nào?

A. Khi muốn tạo ra một phương thức mới trong class cha
B. Khi class con muốn cung cấp một cài đặt khác cho phương thức đã được định nghĩa ở class cha
C. Khi muốn ẩn một phương thức của class cha
D. Khi muốn gọi một phương thức của class cha từ class con

29. Nguyên tắc `Single Responsibility Principle` (SRP) trong SOLID nói về điều gì?

A. Mỗi class nên có một và chỉ một lý do để thay đổi
B. Các class nên mở để mở rộng nhưng đóng để sửa đổi
C. Các class con có thể thay thế class cha mà không làm thay đổi tính đúng đắn của chương trình
D. Nhiều interface đặc thù tốt hơn là một interface đa năng

30. Quan hệ `aggregation` (tổng hợp) khác với `composition` (tổ hợp) ở điểm nào?

A. Aggregation là quan hệ mạnh hơn composition
B. Trong aggregation, các đối tượng thành phần không thể tồn tại độc lập nếu đối tượng chứa bị hủy, còn trong composition thì có thể
C. Trong composition, các đối tượng thành phần không thể tồn tại độc lập nếu đối tượng chứa bị hủy, còn trong aggregation thì có thể
D. Aggregation và composition là hoàn toàn giống nhau

1 / 30

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

Tags: Bộ đề 6

1. Thuật ngữ 'instance' (thể hiện) trong OOP dùng để chỉ điều 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ộ đề 6

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

3 / 30

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

Tags: Bộ đề 6

3. Điều gì KHÔNG phải là lợi ích của việc sử dụng OOP?

4 / 30

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

Tags: Bộ đề 6

4. Phương pháp 'Unit Testing' (kiểm thử đơn vị) trong OOP tập trung vào việc kiểm thử điều 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ộ đề 6

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

6 / 30

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

Tags: Bộ đề 6

6. Nguyên tắc 'Open/Closed Principle' (OCP) trong SOLID khuyến khích điều 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ộ đề 6

7. Trong OOP, 'composition' (tổ hợp) khác với 'inheritance' (kế thừa) như thế nào?

8 / 30

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

Tags: Bộ đề 6

8. Interface trong OOP được sử dụng để làm 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ộ đề 6

9. Trong OOP, 'association', 'aggregation', và 'composition' là các loại quan hệ nào giữa các class?

10 / 30

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

Tags: Bộ đề 6

10. Nguyên tắc 'Interface Segregation Principle' (ISP) trong SOLID đề xuất điều gì?

11 / 30

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

Tags: Bộ đề 6

11. Nguyên tắc 'Liskov Substitution Principle' (LSP) trong SOLID liên quan đến vấn đề 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ộ đề 6

12. 'Dependency Injection' (DI - Tiêm phụ thuộc) là một kỹ thuật thiết kế giúp đạt được mục tiêu chính nào trong OOP?

13 / 30

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

Tags: Bộ đề 6

13. Mục đích chính của việc sử dụng 'design patterns' (mẫu thiết kế) trong OOP 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ộ đề 6

14. Mẫu thiết kế 'Factory' trong OOP được sử dụng để giải quyết vấn đề 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ộ đề 6

15. Tính kế thừa (Inheritance) trong OOP cho phép điều gì?

16 / 30

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

Tags: Bộ đề 6

16. Phương thức trừu tượng (abstract 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ộ đề 6

17. Lỗi 'NullPointerException' thường xảy ra trong OOP do nguyên nhân nào?

18 / 30

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

Tags: Bộ đề 6

18. Tính đóng gói (Encapsulation) trong OOP mang lại lợi ích nào sau đây?

19 / 30

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

Tags: Bộ đề 6

19. Trong lập trình hướng đối tượng, 'class' được hiểu là 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ộ đề 6

20. Tính đa hình (Polymorphism) trong OOP có nghĩa 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ộ đề 6

21. Sự khác biệt chính giữa 'abstract class' và 'interface' trong OOP là 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ộ đề 6

22. Nguyên tắc 'Dependency Inversion Principle' (DIP) trong SOLID tập trung vào việc giảm sự phụ thuộc giữa các module như thế nào?

23 / 30

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

Tags: Bộ đề 6

23. Mẫu thiết kế 'Singleton' trong OOP đảm bảo điều 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ộ đề 6

24. Trong lập trình hướng đối tượng, 'coupling' (kết nối) và 'cohesion' (liên kết) là gì và mối quan hệ giữa chúng?

25 / 30

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

Tags: Bộ đề 6

25. Khi nào nên sử dụng 'composition' thay vì 'inheritance' trong thiết kế OOP?

26 / 30

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

Tags: Bộ đề 6

26. Nguyên tắc 'SOLID' trong OOP là tập hợp các nguyên tắc thiết kế hướng đến mục tiêu nào?

27 / 30

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

Tags: Bộ đề 6

27. Phương thức khởi tạo (constructor) trong class có vai trò chính là gì?

28 / 30

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

Tags: Bộ đề 6

28. Trong ngữ cảnh OOP, 'method overriding' (ghi đè phương thức) được thực hiện khi 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ộ đề 6

29. Nguyên tắc 'Single Responsibility Principle' (SRP) trong SOLID nói về điều 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ộ đề 6

30. Quan hệ 'aggregation' (tổng hợp) khác với 'composition' (tổ hợp) ở điểm nào?