Trắc nghiệm Công nghệ Phần mềm Bài: PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG là một trong những đề thi thuộc Chương 1: MỞ ĐẦU trong học phần Công nghệ Phần mềm chuyên ngành Công Nghệ Thông Tin cấp độ Đại học. Đây là phần kiến thức nền tảng và mang tính đột phá, giúp sinh viên tiếp cận cách tư duy mới trong việc xây dựng phần mềm – tập trung vào các đối tượng và mối quan hệ giữa chúng, thay vì chỉ là các hàm và thủ tục.
Trong bài học này, người học cần nắm vững các nội dung cốt lõi như: khái niệm cơ bản về lập trình hướng đối tượng (OOP), bốn trụ cột chính của OOP (tính đóng gói, tính kế thừa, tính đa hình, tính trừu tượng), sự khác biệt giữa lớp và đối tượng, tầm quan trọng của việc mô hình hóa hệ thống bằng các đối tượng thực tế, và lợi ích của phương pháp hướng đối tượng trong việc phát triển phần mềm phức tạp, dễ bảo trì và có khả năng tái sử dụng. Việc hiểu rõ phương pháp này sẽ là nền tảng vững chắc cho sinh viên khi tiếp cận các ngôn ngữ lập trình và các mô hình thiết kế phần mềm hiện đại.
Hãy cùng Dethitracnghiem.vn tìm hiểu về đề thi này và tham gia làm kiểm tra ngay lập tức!
Trắc nghiệm Công nghệ Phần mềm Bài: PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG
Câu 1.Khái niệm cốt lõi của lập trình hướng đối tượng (OOP) là gì?
A. Tập trung vào các hàm và thủ tục.
B. Chỉ sử dụng ngôn ngữ lập trình cấp thấp.
C. Viết mã theo cách tuần tự.
D. Tổ chức phần mềm xung quanh các đối tượng, kết hợp dữ liệu và hành vi của chúng.
Câu 2.Tính chất nào của OOP cho phép một đối tượng có thể mang nhiều hình thái khác nhau hoặc phản ứng theo cách khác nhau tùy thuộc vào ngữ cảnh?
A. Tính đóng gói (Encapsulation).
B. Tính kế thừa (Inheritance).
C. Tính trừu tượng (Abstraction).
D. Tính đa hình (Polymorphism).
Câu 3.Tính chất nào của OOP giúp che giấu các chi tiết cài đặt bên trong của một đối tượng và chỉ hiển thị các giao diện cần thiết cho người dùng bên ngoài?
A. Tính kế thừa.
B. Tính đa hình.
C. Tính trừu tượng.
D. Tính đóng gói (Encapsulation).
Câu 4.Nếu bạn có một lớp `DongVat` và một lớp `Cho` kế thừa từ `DongVat`, đây là ví dụ của tính chất nào trong 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 (Inheritance).
Câu 5.Sự khác biệt cơ bản giữa một “Lớp” (Class) và một “Đối tượng” (Object) là gì?
A. Lớp là một ví dụ cụ thể, đối tượng là một bản thiết kế.
B. Cả hai đều là ví dụ cụ thể.
C. Lớp chỉ có thể có một đối tượng.
D. Lớp là một bản thiết kế (blueprint) hoặc khuôn mẫu, còn đối tượng là một thể hiện (instance) cụ thể của lớp đó.
Câu 6.Phát biểu 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?
A. Tái sử dụng mã (Code Reusability).
B. Dễ bảo trì và mở rộng (Maintainability and Extensibility).
C. Tổ chức mã tốt hơn (Better Code Organization).
D. Tự động tìm và sửa tất cả lỗi trong mã nguồn.
Câu 7.Khái niệm “Trừu tượng hóa” (Abstraction) trong OOP có ý nghĩa gì?
A. Hiển thị tất cả các chi tiết phức tạp cho người dùng.
B. Làm cho mã nguồn dài hơn.
C. Luôn luôn giấu mọi thông tin.
D. Tập trung vào các đặc điểm và hành vi thiết yếu, bỏ qua các chi tiết không cần thiết.
Câu 8.Trong OOP, một “phương thức” (method) là gì?
A. Một loại dữ liệu.
B. Một biến lưu trữ thông tin.
C. Một bản thiết kế cho một đối tượng.
D. Một hành vi hoặc chức năng mà một đối tượng có thể thực hiện.
Câu 9.Nếu một lớp `Xe` có một phương thức `Chay()` và lớp con `XeDap` cũng có phương thức `Chay()` của riêng nó, nhưng thực hiện khác với `Xe`, đây là ví dụ của tính chất nào trong đa hình?
A. Nạp chồng phương thức (Method Overloading).
B. Ghi đè biến (Variable Overriding).
C. Kế thừa đa cấp (Multilevel Inheritance).
D. Ghi đè phương thức (Method Overriding).
Câu 10.Khi một biến được khai báo là `private` trong một lớp, đây là một phần của tính chất nào trong OOP?
A. Tính kế thừa.
B. Tính đa hình.
C. Tính trừu tượng.
D. Tính đóng gói.
Câu 11.Mối quan hệ “is-a” trong OOP được thể hiện rõ nhất qua tính chất nào?
A. Đóng gói.
B. Đa hình.
C. Trừu tượng.
D. Kế thừa.
Câu 12.Một “Constructor” (hàm tạo) trong một lớp có mục đích chính là gì?
A. Xóa một đối tượng khi không còn cần thiết.
B. Thay đổi giá trị của một thuộc tính.
C. Thực hiện một hành vi phức tạp.
D. Khởi tạo một đối tượng mới của lớp đó.
Câu 13.Nếu bạn có một lớp `HinhHoc` với phương thức trừu tượng `TinhDienTich()`, và các lớp con `HinhTron`, `HinhVuong` phải triển khai phương thức này. Đây là ví dụ của:
A. Tính đa hình thông qua nạp chồng.
B. Tính đóng gói hoàn toàn.
C. Tính kế thừa đơn.
D. Tính trừu tượng và đa hình thông qua ghi đè phương thức.
Câu 14.Khi nào thì bạn nên sử dụng một lớp trừu tượng (Abstract Class) thay vì một interface (giao diện) trong Java/C#?
A. Khi bạn muốn một lớp chỉ có phương thức trừu tượng.
B. Khi bạn muốn hỗ trợ đa kế thừa.
C. Khi bạn muốn che giấu tất cả các thuộc tính.
D. Khi bạn muốn cung cấp cả triển khai mặc định và các phương thức trừu tượng, đồng thời không muốn các lớp con phải kế thừa nhiều cơ sở.
Câu 15.Phát biểu nào sau đây đúng về mối quan hệ “has-a” (composition/aggregation) trong OOP?
A. Lớp con “là một” lớp cha.
B. Đối tượng chỉ có thể thuộc về một lớp duy nhất.
C. Đối tượng có thể được truy cập bởi bất kỳ ai.
D. Một đối tượng “có một” đối tượng khác làm thành phần của nó.
Câu 16.Để áp dụng tính đa hình trong lập trình, điều kiện tiên quyết thường là gì?
A. Tất cả các lớp phải là lớp trừu tượng.
B. Chỉ có thể sử dụng một ngôn ngữ lập trình.
C. Không được phép có tính kế thừa.
D. Có mối quan hệ kế thừa hoặc triển khai interface giữa các lớp.
Câu 17.Trong một hệ thống OOP được thiết kế tốt, việc thay đổi một module sẽ:
A. Yêu cầu thay đổi toàn bộ hệ thống.
B. Làm cho hệ thống không hoạt động.
C. Luôn luôn gây ra lỗi mới.
D. Có khả năng ảnh hưởng đến ít phần khác của hệ thống hơn do tính đóng gói và phụ thuộc thấp.
Câu 18.Phát triển phần mềm theo phương pháp hướng đối tượng có xu hướng làm cho mã nguồn trở nên:
A. Khó đọc và khó hiểu hơn.
B. Chỉ phù hợp cho các dự án rất nhỏ.
C. Kém linh hoạt hơn khi có thay đổi.
D. Dễ tái sử dụng, dễ bảo trì và dễ mở rộng hơn.
Câu 19.Một “interface” (giao diện) trong OOP (ví dụ: trong Java) có chức năng chính là gì?
A. Cung cấp triển khai đầy đủ cho tất cả các phương thức.
B. Định nghĩa các trường dữ liệu bắt buộc.
C. Cho phép tạo các đối tượng trực tiếp từ nó.
D. Định nghĩa một tập hợp các phương thức mà các lớp phải triển khai, cam kết một “hợp đồng” hành vi.
Câu 20.Nếu bạn cần thiết kế một hệ thống quản lý thư viện mà có thể quản lý các loại sách, tạp chí, và tài liệu khác nhau, nhưng đều có chung các hành vi “mượn” và “trả”, phương pháp hướng đối tượng sẽ giúp bạn giải quyết vấn đề này như thế nào?
A. Viết ba chương trình riêng biệt.
B. Sử dụng một hàm lớn để xử lý tất cả.
C. Tạo ra một đối tượng duy nhất cho tất cả.
D. Tạo một lớp cơ sở `TaiLieu` với các phương thức chung, sau đó các lớp con `Sach`, `TapChi` kế thừa và triển khai cụ thể.
Câu 21.Trong Java, nếu một lớp `A` kế thừa từ lớp `B`, và cả hai đều có một phương thức `display()`, khi bạn tạo một đối tượng của lớp `A` và gọi `display()`, đó là ví dụ của:
A. Nạp chồng phương thức.
B. Khởi tạo đối tượng.
C. Liên kết sớm.
D. Liên kết động (Dynamic Binding) hay đa hình thời gian chạy.
Câu 22.Lợi ích của việc sử dụng các “Design Pattern” (Mẫu thiết kế) trong thiết kế hướng đối tượng là gì?
A. Làm cho code trở nên phức tạp.
B. Giảm số lượng lớp.
C. Chỉ áp dụng cho các ngôn ngữ lập trình cũ.
D. 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, thúc đẩy tái sử dụng và khả năng bảo trì.
Câu 23.Khi một đối tượng `Xe` chứa một đối tượng `DongCo` bên trong nó, đây là ví dụ của mối quan hệ nào trong OOP?
A. Kế thừa.
B. Đa hình.
C. Trừu tượng.
D. Thành phần (Composition) hoặc kết tập (Aggregation) – mối quan hệ “has-a”.
Câu 24.Trong bối cảnh hướng đối tượng, “Coupling” (sự gắn kết) đề cập đến điều gì?
A. Mức độ độc lập của một module.
B. Khả năng tái sử dụng của một lớp.
C. Số lượng thuộc tính trong một đối tượng.
D. Mức độ phụ thuộc giữa các module hoặc lớp trong hệ thống.
Câu 25.Trong bối cảnh hướng đối tượng, “Cohesion” (sự cố kết) đề cập đến điều gì?
A. Mức độ mà các module phụ thuộc vào nhau.
B. Số lượng phương thức trong một lớp.
C. Khả năng một đối tượng tương tác với các đối tượng khác.
D. Mức độ mà các phần tử bên trong một module hoặc lớp liên quan chặt chẽ với nhau và cùng phục vụ một mục đích chung.