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

2

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 - Đề 08

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Hướng Đối Tượng 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 đa hình (Polymorphism)
  • D. Tính kế thừa (Inheritance)

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

  • A. Tăng khả năng tái sử dụng mã nguồn
  • B. Giảm độ phức tạp trong quản lý dự án lớn
  • C. Dễ dàng bảo trì và mở rộng hệ thống
  • D. Tăng tốc độ thực thi chương trình so với lập trình hướng thủ tục

Câu 3: Trong OOP, "tính đóng gói" (encapsulation) đạt được chủ yếu thông qua cơ chế nào?

  • A. Sử dụng hàm và thủ tục
  • B. Sử dụng các từ khóa kiểm soát truy cập (access modifiers)
  • C. Phân chia chương trình thành các module
  • D. Áp dụng cấu trúc dữ liệu trừu tượng

Câu 4: Cho đoạn code Python sau:

```python
class DongVat:
def __init__(self, ten):
self.ten = ten
def tieng_keu(self):
return

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

Câu 5: "Lớp" (class) trong OOP có vai trò tương tự như khái niệm nào trong thế giới thực?

  • A. Một hành động cụ thể
  • B. Một bản thiết kế hoặc khuôn mẫu
  • C. Một dữ liệu đơn lẻ
  • D. Một chương trình hoàn chỉnh

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

  • A. Khởi tạo các thuộc tính (dữ liệu) của đối tượng khi mới được tạo
  • B. Xóa đối tượng khi nó không còn được sử dụng
  • C. Gọi một phương thức khác trong lớp
  • D. Kiểm tra kiểu dữ liệu của đối tượng

Câu 7: "Tính trừu tượng" (abstraction) trong OOP giúp lập trình viên tập trung vào điều gì?

  • A. Tất cả các chi tiết cài đặt phức tạp của đối tượng
  • B. Cách đối tượng được lưu trữ trong bộ nhớ
  • C. Ngôn ngữ lập trình được sử dụng để tạo đối tượng
  • D. Các đặc điểm và hành vi thiết yếu của đối tượng, bỏ qua chi tiết không cần thiết

Câu 8: Trong ngữ cảnh kế thừa, lớp "cha" còn được gọi bằng thuật ngữ nào khác?

  • A. Lớp dẫn xuất
  • B. Lớp cơ sở
  • C. Lớp giao diện
  • D. Lớp trừu tượng

Câu 9: Điều gì xảy ra khi một lớp con kế thừa từ lớp cha?

  • A. Lớp con mất hết các thuộc tính và phương thức của chính nó
  • B. Lớp cha không còn tồn tại sau khi lớp con được tạo
  • C. Lớp con tự động có các thuộc tính và phương thức của lớp cha
  • D. Lớp con và lớp cha trở thành hoàn toàn độc lập

Câu 10: Mục đích chính của việc sử dụng "tính kế thừa" (inheritance) trong OOP là gì?

  • A. Tái sử dụng mã nguồn và xây dựng hệ thống phân cấp lớp
  • B. Tăng tính phức tạp của chương trình
  • C. Giảm hiệu suất thực thi của chương trình
  • D. Che giấu hoàn toàn dữ liệu của đối tượng

Câu 11: Trong OOP, "đối tượng" (object) là gì?

  • A. Một bản thiết kế cho các thực thể
  • B. Một tập hợp các lớp có liên quan
  • C. Một thể hiện cụ thể của một lớp
  • D. Một phương pháp lập trình

Câu 12: 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
  • B. Biến
  • C. Cấu trúc điều khiển
  • D. Module

Câu 13: 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. Kiểu dữ liệu của đối tượng
  • C. Tên của đối tượng
  • D. Hành vi hoặc thao tác mà đối tượng có thể thực hiện

Câu 14: Trong các ngôn ngữ OOP, từ khóa nào thường được sử dụng để khai báo một lớp?

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

Câu 15: "Tính đa hình" (polymorphism) giúp giải quyết vấn đề nào trong lập trình?

  • A. Vấn đề bảo mật dữ liệu
  • B. Vấn đề quản lý bộ nhớ
  • C. Vấn đề xử lý các đối tượng thuộc nhiều kiểu khác nhau một cách linh hoạt
  • D. Vấn đề tối ưu hiệu suất chương trình

Câu 16: Cho sơ đồ lớp như sau: `HìnhHọc` <- `HìnhVuông`, `HìnhHọc` <- `HìnhTròn`. Mối quan hệ giữa `HìnhHọc` và `HìnhVuông` là gì?

  • A. Quan hệ chứa (composition)
  • B. Quan hệ sử dụng (association)
  • C. Quan hệ phụ thuộc (dependency)
  • D. Quan hệ kế thừa (inheritance)

Câu 17: Phương thức nào sau đây KHÔNG phải là một trong bốn trụ cột chính của lập trình hướng đối tượng?

  • A. Tính đóng gói
  • B. Tính kế thừa
  • C. Tính module hóa
  • D. Tính đa hình

Câu 18: Trong OOP, "giao diện" (interface) thường được sử dụng để định nghĩa điều gì?

  • A. Cách dữ liệu được lưu trữ trong đối tượng
  • B. Một tập hợp các phương thức mà các lớp phải thực hiện
  • C. Cấu trúc bên trong của một đối tượng
  • D. Mối quan hệ giữa các đối tượng

Câu 19: Khi nào nên sử dụng "lớp trừu tượng" (abstract class) trong OOP?

  • A. Khi muốn tạo ra các đối tượng cụ thể
  • B. Khi muốn tăng tốc độ thực thi chương trình
  • C. Khi muốn che giấu hoàn toàn dữ liệu
  • D. Khi muốn định nghĩa một lớp cha chung với một số phương thức trừu tượng cần lớp con hiện thực

Câu 20: Điều gì KHÔNG phải là một loại quan hệ phổ biến giữa các lớp trong OOP?

  • A. Kế thừa (Inheritance)
  • B. Kết hợp (Association)
  • C. Quan hệ phản chiếu (Reflection)
  • D. Hợp thành (Composition)

Câu 21: Trong OOP, "phương thức tĩnh" (static method) khác với "phương thức đối tượng" (instance method) như thế nào?

  • A. Phương thức tĩnh chỉ có thể được gọi bên trong lớp
  • B. Phương thức tĩnh được gọi trực tiếp từ lớp, không cần đối tượng cụ thể
  • C. Phương thức tĩnh có tốc độ thực thi nhanh hơn
  • D. Phương thức tĩnh không thể trả về giá trị

Câu 22: "SOLID" là một tập hợp các nguyên tắc thiết kế quan trọng trong OOP. Chữ "O" trong SOLID đại diện cho nguyên tắc nào?

  • A. Single Responsibility Principle
  • B. Liskov Substitution Principle
  • C. Open/Closed Principle
  • D. Interface Segregation Principle

Câu 23: Trong OOP, "đa kế thừa" (multiple inheritance) là gì?

  • A. Một lớp con kế thừa từ nhiều lớp cha
  • B. Một lớp cha có nhiều lớp con
  • C. Một đối tượng thuộc nhiều lớp khác nhau
  • D. Một phương thức có nhiều cài đặt khác nhau

Câu 24: 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 độ viết code
  • B. Cung cấp các giải pháp đã được kiểm chứng cho các vấn đề thiết kế phổ biến
  • C. Giảm kích thước chương trình
  • D. Che giấu mã nguồn khỏi người dùng

Câu 25: Trong OOP, "composition" (hợp thành) là một loại quan hệ "has-a" mạnh mẽ. Điều gì phân biệt "composition" với "aggregation" (tập hợp)?

  • A. Aggregation mạnh mẽ hơn composition
  • B. Composition cho phép chia sẻ đối tượng, aggregation thì không
  • C. Aggregation chỉ áp dụng cho dữ liệu, composition cho cả dữ liệu và hành vi
  • D. Trong composition, đối tượng thành phần phụ thuộc vào đối tượng chứa và có vòng đời phụ thuộc vào nó

Câu 26: Cho đoạn code Java sau:

```java
public interface Shape {
double getArea();
}

public class Circle implements Shape {
private double radius;
public Circle(double r) { radius = r; }
public double getArea() { return Math.PI * radius * radius; }
}
```

`interface Shape` trong đoạn code trên thể hiện khái niệm OOP nào?

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

Câu 27: Điều gì KHÔNG phải là một ưu điểm của lập trình hướng đối tượng so với lập trình hướng thủ tục?

  • A. Khả năng quản lý dự án lớn tốt hơn
  • B. Tính tái sử dụng mã cao hơn
  • C. Đơn giản hơn cho các chương trình nhỏ và đơn giản
  • D. Mô hình hóa thế giới thực tự nhiên hơn

Câu 28: Trong OOP, "overloading" (nạp chồng) phương thức là gì?

  • A. Thay đổi hành vi của phương thức trong lớp con
  • B. Định nghĩa nhiều phương thức cùng tên nhưng khác tham số trong một lớp
  • C. Gọi một phương thức từ một lớp khác
  • D. Ẩn chi tiết cài đặt của phương thức

Câu 29: "Dependency Injection" (DI - Tiêm phụ thuộc) là một kỹ thuật thường được sử dụng trong OOP để đạt được mục tiêu nào?

  • A. Tăng hiệu suất chương trình
  • B. Bảo mật dữ liệu tốt hơn
  • C. Giảm sự phụ thuộc giữa các thành phần và tăng tính module hóa
  • D. Đơn giản hóa việc quản lý bộ nhớ

Câu 30: Trong ngữ cảnh kiểm soát truy cập, thành phần "protected" của một lớp có thể được truy cập từ đâu?

  • A. Chỉ từ bên trong lớp chứa nó
  • B. Từ bên trong lớp chứa nó và các lớp con kế thừa từ nó
  • C. Từ bất kỳ đâu trong chương trình
  • D. Chỉ từ chương trình chính (main program)

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ộ đề 8

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?

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ộ đề 8

Câu 2: Điều gì KHÔNG phải là lợi ích chính của việc sử dụng 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ộ đề 8

Câu 3: Trong OOP, 'tính đóng gói' (encapsulation) đạt được chủ yếu thông qua cơ chế nào?

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ộ đề 8

Câu 4: Cho đoạn code Python sau:

```python
class DongVat:
def __init__(self, ten):
self.ten = ten
def tieng_keu(self):
return "Âm thanh chung chung"

class Cho(DongVat):
def tieng_keu(self):
return "Gâu gâu!"

mot_con_cho = Cho("Milu")
print(mot_con_cho.tieng_keu())
```

Đoạn code trên minh họa rõ nhất đặc điểm nào của OOP?

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ộ đề 8

Câu 5: 'Lớp' (class) trong OOP có vai trò tương tự như khái niệm nào trong thế giới thực?

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ộ đề 8

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

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ộ đề 8

Câu 7: 'Tính trừu tượng' (abstraction) trong OOP giúp lập trình viên tập trung vào điều gì?

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ộ đề 8

Câu 8: Trong ngữ cảnh kế thừa, lớp 'cha' còn được gọi bằng thuật ngữ nào khác?

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ộ đề 8

Câu 9: Điều gì xảy ra khi một lớp con kế thừa từ lớp cha?

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ộ đề 8

Câu 10: Mục đích chính của việc sử dụng 'tính kế thừa' (inheritance) trong OOP là gì?

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ộ đề 8

Câu 11: Trong OOP, 'đối tượng' (object) là gì?

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ộ đề 8

Câu 12: 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?

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ộ đề 8

Câu 13: Phương thức (method) của một đối tượng trong OOP thể hiện điều 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ộ đề 8

Câu 14: Trong các ngôn ngữ OOP, từ khóa nào thường được sử dụng để khai báo một lớp?

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ộ đề 8

Câu 15: 'Tính đa hình' (polymorphism) giúp giải quyết vấn đề nào trong lập trình?

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ộ đề 8

Câu 16: Cho sơ đồ lớp như sau: `HìnhHọc` <- `HìnhVuông`, `HìnhHọc` <- `HìnhTròn`. Mối quan hệ giữa `HìnhHọc` và `HìnhVuông` là 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ộ đề 8

Câu 17: Phương thức nào sau đây KHÔNG phải là một trong bốn trụ cột chính của lập trình hướng đối tượng?

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ộ đề 8

Câu 18: Trong OOP, 'giao diện' (interface) thường được sử dụng để định nghĩa điều 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ộ đề 8

Câu 19: Khi nào nên sử dụng 'lớp trừu tượng' (abstract class) trong OOP?

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ộ đề 8

Câu 20: Điều gì KHÔNG phải là một loại quan hệ phổ biến giữa các lớp trong OOP?

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ộ đề 8

Câu 21: Trong OOP, 'phương thức tĩnh' (static method) khác với 'phương thức đối tượng' (instance method) 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ộ đề 8

Câu 22: 'SOLID' là một tập hợp các nguyên tắc thiết kế quan trọng trong OOP. Chữ 'O' trong SOLID đại diện cho nguyên tắc nào?

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ộ đề 8

Câu 23: Trong OOP, 'đa kế thừa' (multiple inheritance) 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ộ đề 8

Câu 24: Lợi ích chính của việc sử dụng 'design patterns' (mẫu thiết kế) trong OOP là 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ộ đề 8

Câu 25: Trong OOP, 'composition' (hợp thành) là một loại quan hệ 'has-a' mạnh mẽ. Điều gì phân biệt 'composition' với 'aggregation' (tập hợp)?

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ộ đề 8

Câu 26: Cho đoạn code Java sau:

```java
public interface Shape {
double getArea();
}

public class Circle implements Shape {
private double radius;
public Circle(double r) { radius = r; }
public double getArea() { return Math.PI * radius * radius; }
}
```

`interface Shape` trong đoạn code trên thể hiện khái niệm OOP nào?

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ộ đề 8

Câu 27: Điều gì KHÔNG phải là một ưu điểm của lập trình hướng đối tượng so với lập trình hướng thủ tục?

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ộ đề 8

Câu 28: Trong OOP, 'overloading' (nạp chồng) phương thức là gì?

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ộ đề 8

Câu 29: 'Dependency Injection' (DI - Tiêm phụ thuộc) là một kỹ thuật thường được sử dụng trong OOP để đạt được mục tiêu nào?

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ộ đề 8

Câu 30: Trong ngữ cảnh kiểm soát truy cập, thành phần 'protected' của một lớp có thể được truy cập từ đâu?

Xem kết quả