Bài Tập, Đề Thi Trắc Nghiệm Online – Môn Lập Trình Hướng Đối Tượng – Đề 07

4

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é!!!


Môn Lập Trình Hướng Đối Tượng

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng - Đề 07

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng - Đề 06 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong lập trình hướng đối tượng, khái niệm nào sau đây thể hiện khả năng một đối tượng thuộc lớp con có thể hành xử khác so với đối tượng thuộc lớp cha khi được gọi cùng một phương thức?

  • A. Tính đóng gói (Encapsulation)
  • B. Tính trừu tượng (Abstraction)
  • C. Tính kế thừa (Inheritance)
  • D. Tính đa hình (Polymorphism)

Câu 2: Xét tình huống có lớp "Động vật" với phương thức "Tiếng kêu". Lớp "Mèo" và "Chó" kế thừa từ "Động vật". Khi gọi phương thức "Tiếng kêu" trên đối tượng "mèo" và "chó", kết quả sẽ khác nhau (mèo kêu "meo", chó kêu "gâu gâu"). Đây là ví dụ minh họa rõ nhất cho tính chất nào của OOP?

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

Câu 3: Một lớp "Xe hơi" có các thuộc tính như "màu sắc", "kiểu dáng", "động cơ" và phương thức "khởi động", "tăng tốc", "dừng lại". Việc nhóm các thuộc tính và phương thức liên quan đến "Xe hơi" vào một đơn vị duy nhất được gọi là gì?

  • A. Tính đóng gói (Encapsulation)
  • B. Tính kế thừa (Inheritance)
  • C. Tính đa hình (Polymorphism)
  • D. Tính trừu tượng (Abstraction)

Câu 4: Trong một hệ thống quản lý thư viện, lớp "Sách" có thuộc tính "tiêu đề", "tác giả", "ISBN" và phương thức "mượn sách", "trả sách". Nếu muốn tạo lớp "Sách tham khảo" và "Tiểu thuyết" kế thừa từ "Sách", ta đang áp dụng tính chất nào của OOP?

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

Câu 5: Khi thiết kế lớp "Hình học", ta chỉ quan tâm đến các thuộc tính và phương thức chung nhất của mọi hình (ví dụ: "diện tích", "chu vi", "vẽ"). Các lớp cụ thể như "Hình tròn", "Hình vuông", "Tam giác" sẽ kế thừa và hiện thực hóa các phương thức này theo cách riêng. Đây là biểu hiện của tính chất nào?

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

Câu 6: Trong OOP, "lớp" (class) đóng vai trò như thế nào?

  • A. Một thể hiện cụ thể của dữ liệu
  • B. Một hành động mà đối tượng có thể thực hiện
  • C. Bản thiết kế hoặc khuôn mẫu cho các đối tượng
  • D. Một biến chứa giá trị đơn lẻ

Câu 7: "Đối tượng" (object) khác với "lớp" (class) ở điểm nào?

  • A. Đối tượng là một thể hiện cụ thể của lớp
  • B. Lớp là một thể hiện cụ thể của đối tượng
  • C. Đối tượng chứa định nghĩa, lớp chứa dữ liệu
  • D. Không có sự khác biệt, "lớp" và "đối tượng" là đồng nghĩa

Câu 8: Thuộc tính (attribute) của một đối tượng trong OOP tương ứng với khái niệm nào trong lập trình hướng cấu trúc?

  • A. Hàm (function)
  • B. Biến dữ liệu (data variable)
  • C. Cấu trúc điều khiển (control structure)
  • D. Thủ tục (procedure)

Câu 9: Phương thức (method) của một đối tượng trong OOP thể hiện điều gì?

  • A. Dữ liệu mà đối tượng lưu trữ
  • B. Đặc điểm hình thức của đối tượng
  • C. Hành vi hoặc thao tác mà đối tượng có thể thực hiện
  • D. Mối quan hệ giữa các đối tượng

Câu 10: Từ khóa nào thường được sử dụng để khai báo một lớp trong các ngôn ngữ lập trình hướng đối tượng như Java, C++, C#?

  • A. struct
  • B. type
  • C. object
  • D. class

Câu 11: Điều gì xảy ra khi bạn tạo một "thể hiện" (instance) của một lớp?

  • A. Lớp đó bị xóa khỏi bộ nhớ
  • B. Một đối tượng cụ thể được tạo ra trong bộ nhớ
  • C. Chương trình biên dịch lại toàn bộ mã
  • D. Không có gì xảy ra cho đến khi đối tượng được sử dụng

Câu 12: "Tính đóng gói" (Encapsulation) giúp đạt được mục tiêu nào quan trọng trong thiết kế phần mềm?

  • A. Tăng tốc độ thực thi chương trình
  • B. Giảm dung lượng bộ nhớ sử dụng
  • C. Che giấu thông tin và kiểm soát truy cập dữ liệu
  • D. Cho phép đa kế thừa từ nhiều lớp

Câu 13: "Tính kế thừa" (Inheritance) mang lại lợi ích chính nào trong phát triển phần mềm?

  • A. Tái sử dụng mã nguồn và giảm sự trùng lặp
  • B. Tăng tính phức tạp của cấu trúc chương trình
  • C. Giảm tính linh hoạt trong thay đổi thiết kế
  • D. Bắt buộc sử dụng đa hình

Câu 14: Phương thức "khởi tạo" (constructor) trong lớp được sử dụng để làm gì?

  • A. Hủy đố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
  • C. Thay đổi kiểu dữ liệu của đối tượng
  • D. Gọi các phương thức khác của đối tượng

Câu 15: "Tính trừu tượng" (Abstraction) giúp nhà phát triển tập trung vào điều gì khi làm việc với đối tượng?

  • A. Chi tiết cài đặt bên trong của đối tượng
  • B. Toàn bộ mã nguồn của lớp
  • C. Giao diện và hành vi bên ngoài của đối tượng
  • D. Vị trí bộ nhớ của đối tượng

Câu 16: Trong ngữ cảnh "đa hình" (polymorphism), "ghi đè phương thức" (method overriding) xảy ra khi nào?

  • A. Hai lớp có phương thức trùng tên nhưng khác tham số
  • B. Một lớp có nhiều phương thức cùng tên
  • C. Gọi một phương thức của lớp cha từ lớp con
  • D. Lớp con định nghĩa lại phương thức của lớp cha

Câu 17: "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 liên quan đến kế thừa, ghi đè thì không
  • B. Nạp chồng trong cùng lớp, ghi đè giữa lớp cha và lớp con
  • C. Nạp chồng thay đổi hành vi, ghi đè giữ nguyên hành vi
  • D. Nạp chồng tạo phương thức mới, ghi đè sửa phương thức cũ

Câu 18: "Tính trừu tượng hóa dữ liệu" (data abstraction) thường được thực hiện thông qua cơ chế nào trong OOP?

  • A. Tính đóng gói
  • B. Tính kế thừa
  • C. Lớp trừu tượng và giao diện
  • D. Tính đa hình

Câu 19: Trong thiết kế lớp, phạm vi truy cập "private" có ý nghĩa gì đối với thành viên (thuộc tính hoặc phương thức) của lớp?

  • A. Chỉ có thể truy cập từ bên trong lớp đó
  • B. Có thể truy cập từ lớp con nhưng không từ bên ngoài
  • C. Có thể truy cập từ bất kỳ đâu trong chương trình
  • D. Chỉ có thể truy cập từ các lớp bạn (friend classes)

Câu 20: Phạm vi truy cập "protected" khác với "private" ở điểm nào?

  • A. Không có sự khác biệt, "private" và "protected" là như nhau
  • B. Cho phép lớp con kế thừa truy cập, "private" thì không
  • C. "Protected" bảo mật hơn "private"
  • D. "Protected" chỉ dùng cho phương thức, "private" cho thuộc tính

Câu 21: Phạm vi truy cập "public" cho phép thành viên lớp được truy cập từ đâu?

  • A. Chỉ từ bên trong lớp và lớp con
  • B. Chỉ từ các lớp cùng gói (package)
  • C. Từ bất kỳ đâu trong chương trình
  • D. Chỉ từ hàm main()

Câu 22: Trong sơ đồ lớp UML, hình chữ nhật biểu diễn khái niệm nào?

  • A. Đối tượng (object)
  • B. Lớp (class)
  • C. Giao diện (interface)
  • D. Thuộc tính (attribute)

Câu 23: Trong UML, đường thẳng có mũi tên rỗng biểu diễn mối quan hệ nào giữa các lớp?

  • A. Quan hệ sử dụng (dependency)
  • B. Quan hệ kết hợp (association)
  • C. Quan hệ hợp thành (composition)
  • D. Quan hệ kế thừa (inheritance/generalization)

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

  • A. Định nghĩa một tập hợp các phương thức mà các lớp phải thực hiện
  • B. Tăng cường tính đóng gói của lớp
  • C. Thay thế cho lớp trừu tượng
  • D. Cho phép đa kế thừa từ nhiều lớp

Câu 25: "Tính trừu tượng hóa" (abstraction) khác với "tính đóng gói" (encapsulation) như thế nào?

  • A. Không có sự khác biệt, chỉ là hai tên gọi khác nhau
  • B. Đóng gói là một dạng đặc biệt của trừu tượng hóa
  • C. Trừu tượng hóa là "cái gì", đóng gói là "làm thế nào" để bảo vệ nó
  • D. Trừu tượng hóa chỉ dùng cho lớp, đóng gói cho đối tượng

Câu 26: Trong lập trình hướng đối tượng, "thông điệp" (message) được gửi giữa các đối tượng để làm gì?

  • A. Lưu trữ dữ liệu giữa các đối tượng
  • B. Yêu cầu một đối tượng khác thực hiện một hành động
  • C. Đồng bộ hóa trạng thái của các đối tượng
  • D. Thông báo lỗi giữa các đối tượng

Câu 27: Khi nào nên sử dụng "đa kế thừa" (multiple inheritance) trong thiết kế OOP?

  • A. Luôn luôn để tận dụng tối đa tính kế thừa
  • B. Để đơn giản hóa cấu trúc lớp
  • C. Khi muốn tránh sử dụng giao diện
  • D. Khi một lớp cần kết hợp hành vi từ nhiều lớp cha một cách hợp lý

Câu 28: "Tính linh hoạt" và "khả năng mở rộng" của phần mềm được tăng cường nhờ các nguyên tắc OOP nào?

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

Câu 29: Trong mô hình hướng đối tượng, mối quan hệ "is-a" thường được hiện thực hóa bằng cơ chế nào?

  • A. Quan hệ kết hợp
  • B. Quan hệ hợp thành
  • C. Quan hệ kế thừa
  • D. Quan hệ sử dụng

Câu 30: Chọn phát biểu đúng về lợi ích của lập trình hướng đối tượng:

  • A. Giảm tốc độ thực thi chương trình
  • B. Khó bảo trì và mở rộng hơn so với lập trình hướng cấu trúc
  • C. Ít phù hợp với các dự án lớn và phức tạp
  • D. Tăng khả năng tái sử dụng, bảo trì và mở rộng phần mềm

1 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 1: Trong lập trình hướng đối tượng, khái niệm nào sau đây thể hiện khả năng một đối tượng có thể thuộc nhiều kiểu dữ liệu khác nhau?

2 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 2: Điều gì KHÔNG phải là lợi ích chính của việc sử dụng tính đóng gói trong lập trình hướng đối tượng?

3 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 3: Xét đoạn mã giả sau:

```
Class Animal {
function makeSound() {
print "Generic animal sound";
}
}

Class Dog extends Animal {
function makeSound() {
print "Woof!";
}
}

Class Cat extends Animal {
function makeSound() {
print "Meow!";
}
}

Animal myAnimal = new Animal();
Dog myDog = new Dog();
Cat myCat = new Cat();

myAnimal.makeSound();
myDog.makeSound();
myCat.makeSound();
```

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

4 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 4: Trong lập trình hướng đối tượng, 'lớp' (class) đóng vai trò gì?

5 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 5: Phương thức khởi tạo (constructor) trong lớp được sử dụng để làm gì?

6 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 6: 'Tính trừu tượng hóa' (Abstraction) trong OOP giúp giải quyết vấn đề nào sau đây?

7 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 7: Trong ngữ cảnh kế thừa, lớp 'con' (derived class) KHÔNG được kế thừa điều gì từ lớp 'cha' (base class)?

8 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 8: 'Tính kế thừa' (Inheritance) mang lại lợi ích nào sau đây trong lập trình hướng đối tượng?

9 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 9: Từ khóa nào thường được sử dụng để khai báo tính kế thừa trong nhiều ngôn ngữ lập trình hướng đối tượng (ví dụ: Java, C++, Python)?

10 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 10: Trong thiết kế hướng đối tượng, mối quan hệ 'IS-A' (là một) thường được hiện thực hóa bằng cơ chế nào?

11 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 11: Thuộc tính 'private' của một lớp có phạm vi truy cập như thế nào?

12 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 12: Phương thức 'getter' (phương thức truy cập) thường được sử dụng để làm gì trong OOP?

13 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 13: 'Đối tượng' (object) trong lập trình hướng đối tượng là gì?

14 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

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

15 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 15: 'Tính đa hình tham số' (parameterized polymorphism) hay 'Generics' cho phép chúng ta làm gì?

16 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 16: Trong lập trình hướng đối tư???ng, 'thông điệp' (message) được gửi giữa các đối tượng có vai trò gì?

17 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 17: Xét tình huống: Bạn có các lớp 'Xe', 'Ô tô', 'Xe máy', 'Xe tải'. Cách tổ chức lớp nào thể hiện quan hệ kế thừa hợp lý nhất?

18 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 18: 'Tính đa hình thời gian chạy' (runtime polymorphism) còn được gọi là gì?

19 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 19: 'Nạp chồng phương thức' (method overloading) là gì?

20 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 20: 'Tính trừu tượng dữ liệu' (data abstraction) trong OOP liên quan mật thiết đến khái niệm nào?

21 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 21: Trong lập trình hướng đối tượng, 'composition' (tổ hợp) và 'aggregation' (kết hợp) khác nhau như thế nào?

22 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 22: Ví dụ nào sau đây thể hiện rõ nhất quan hệ 'composition'?

23 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 23: 'Phương thức trừu tượng' (abstract method) là gì?

24 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 24: Lớp trừu tượng (abstract class) có đặc điểm gì?

25 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 25: 'SOLID' là một tập hợp các nguyên tắc thiết kế hướng đối tượng. Chữ 'L' trong SOLID đại diện cho nguyên tắc nào?

26 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 26: Nguyên tắc 'Single Responsibility Principle' (SRP) trong SOLID khuyến khích điều gì?

27 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 27: 'Design Pattern' (Mẫu thiết kế) trong OOP là gì?

28 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 28: Mẫu thiết kế 'Singleton' thuộc nhóm mẫu thiết kế nào?

29 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 29: Ư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 cấu trúc trong các dự án lớn và phức tạp là gì?

30 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng

Tags: Bộ đề 7

Câu 30: Khi nào thì việc sử dụng lập trình hướng đối tượng có thể KHÔNG phải là lựa chọn tốt nhất?

Xem kết quả