Bộ 1 - Trắc nghiệm Lập trình hướng đối tượng có đáp án
Thời gian còn lại: --:--
Kết quả của bạn:
Bạn đã đúng:
Bạn đã sai:
Tổng số câu:
Câu 1:Trong lập trình hướng đối tượng, đặc điểm nào cho phép che giấu thông tin chi tiết và chỉ lộ ra những gì cần thiết?
💡 Lời giải chi tiết:
Tính đóng gói (Encapsulation) giúp bảo vệ trạng thái bên trong của đối tượng bằng cách giới hạn quyền truy cập trực tiếp vào các thành phần dữ liệu Kết luận Lý giải Tính đóng gói
Câu 2:Một 'Class' (lớp) trong lập trình hướng đối tượng được hiểu tốt nhất là gì?
💡 Lời giải chi tiết:
Lớp đóng vai trò là một khuôn mẫu định nghĩa các thuộc tính và phương thức chung mà các đối tượng thuộc lớp đó sẽ có Kết luận Lý giải Một bản thiết kế hoặc khuôn mẫu để tạo ra các đối tượng
Câu 3:Tính chất nào cho phép một lớp con sử dụng lại các thuộc tính và phương thức của lớp cha?
💡 Lời giải chi tiết:
Tính kế thừa (Inheritance) cho phép xây dựng các lớp mới dựa trên các lớp đã tồn tại để tái sử dụng mã nguồn Kết luận Lý giải Tính kế thừa
Câu 4:Hiện tượng một phương thức có cùng tên nhưng có các hành vi khác nhau tùy thuộc vào đối tượng gọi nó được gọi là gì?
💡 Lời giải chi tiết:
Tính đa hình (Polymorphism) cho phép một thông điệp được gửi tới nhiều loại đối tượng khác nhau và mỗi đối tượng phản hồi theo cách riêng của nó Kết luận Lý giải Tính đa hình
Câu 5:Mục tiêu chính của 'Tính trừu tượng' (Abstraction) trong lập trình hướng đối tượng là gì?
💡 Lời giải chi tiết:
Tính trừu tượng giúp người lập trình tập trung vào các hành vi cốt lõi của đối tượng thay vì quan tâm đến cách thức triển khai chi tiết bên dưới Kết luận Lý giải Giảm sự phức tạp bằng cách tập trung vào các đặc điểm quan trọng và bỏ qua chi tiết cài đặt
Câu 6:Từ khóa truy cập nào (Access Modifier) chỉ cho phép các thành phần bên trong cùng một lớp truy cập được?
💡 Lời giải chi tiết:
Từ khóa 'private' giới hạn phạm vi truy cập của thành phần dữ liệu chỉ trong phạm vi của chính lớp định nghĩa nó Kết luận Lý giải private
Câu 7:Phương thức đặc biệt được tự động gọi khi một đối tượng được khởi tạo từ một lớp được gọi là gì?
💡 Lời giải chi tiết:
Constructor (hàm khởi tạo) là phương thức dùng để thiết lập giá trị ban đầu cho các thuộc tính khi một đối tượng mới được tạo ra Kết luận Lý giải Constructor
Câu 8:Trong lập trình hướng đối tượng, 'Overloading' (nạp chồng phương thức) xảy ra khi nào?
💡 Lời giải chi tiết:
Nạp chồng phương thức cho phép sử dụng cùng một tên phương thức cho các mục đích khác nhau dựa trên danh sách tham số đầu vào Kết luận Lý giải Nhiều phương thức trong cùng một lớp có cùng tên nhưng khác nhau về tham số
Câu 9:Trong lập trình hướng đối tượng, 'Overriding' (ghi đè phương thức) có đặc điểm gì?
💡 Lời giải chi tiết:
Ghi đè phương thức cho phép lớp con thay đổi hoặc mở rộng hành vi của phương thức mà nó kế thừa từ lớp cha Kết luận Lý giải Lớp con cung cấp một triển khai cụ thể cho một phương thức đã có ở lớp cha
Câu 10:Lớp nào không thể dùng để khởi tạo đối tượng trực tiếp và thường chứa ít nhất một phương thức chưa được triển khai?
💡 Lời giải chi tiết:
Lớp trừu tượng được thiết kế để làm lớp cơ sở và bắt buộc các lớp con phải triển khai các hành vi cụ thể trước khi tạo đối tượng Kết luận Lý giải Lớp trừu tượng (Abstract Class)
Câu 11:Điểm khác biệt cơ bản nhất giữa 'Interface' và 'Abstract Class' là gì?
💡 Lời giải chi tiết:
Hầu hết các ngôn ngữ OOP hiện đại hỗ trợ đa thực thi Interface để giải quyết hạn chế của đơn kế thừa lớp Kết luận Lý giải Một lớp có thể triển khai nhiều Interface nhưng thường chỉ kế thừa từ một Abstract Class
Câu 12:Từ khóa 'static' được sử dụng để định nghĩa một thành phần như thế nào?
💡 Lời giải chi tiết:
Các thành phần tĩnh được dùng chung cho tất cả các đối tượng của lớp và tồn tại độc lập với việc khởi tạo đối tượng Kết luận Lý giải Thành phần đó thuộc về lớp chứ không thuộc về một đối tượng cụ thể nào
Câu 13:Mối quan hệ 'Is-a' trong lập trình hướng đối tượng đại diện cho khái niệm nào?
💡 Lời giải chi tiết:
Mối quan hệ 'Is-a' (là một) xác nhận rằng một lớp con là một phiên bản cụ thể hơn của lớp cha Kết luận Lý giải Sự kế thừa (Inheritance)
Câu 14:Mối quan hệ 'Has-a' thường được triển khai thông qua kỹ thuật nào?
💡 Lời giải chi tiết:
Mối quan hệ 'Has-a' (có một) biểu thị việc một đối tượng chứa hoặc sở hữu các đối tượng khác như là thuộc tính của nó Kết luận Lý giải Thành phần/Kết hợp (Composition/Aggregation)
Câu 15:Từ khóa 'protected' cho phép truy cập thành phần của lớp trong phạm vi nào?
💡 Lời giải chi tiết:
Quyền truy cập protected được thiết kế để hỗ trợ tính kế thừa bằng cách cho phép các lớp con sử dụng tài nguyên của lớp cha Kết luận Lý giải Trong chính lớp đó và các lớp con kế thừa từ nó
Câu 16:Từ khóa 'this' (hoặc tương đương tùy ngôn ngữ) thường tham chiếu đến cái gì?
💡 Lời giải chi tiết:
Từ khóa 'this' được dùng để phân biệt giữa thuộc tính của đối tượng và tham số truyền vào khi chúng trùng tên Kết luận Lý giải Chính đối tượng hiện tại đang thực thi phương thức
Câu 17:Từ khóa nào được dùng để gọi các phương thức hoặc constructor của lớp cha?
💡 Lời giải chi tiết:
Từ khóa super hoặc base cho phép lớp con truy cập và sử dụng lại các chức năng đã được định nghĩa ở lớp cha Kết luận Lý giải super (hoặc base)
Câu 18:Lợi ích quan trọng nhất của việc sử dụng 'Interface' thay vì kế thừa trực tiếp là gì?
💡 Lời giải chi tiết:
Interface tạo ra một bản hợp đồng về hành vi giúp các thành phần trong hệ thống giao tiếp với nhau mà không cần biết chi tiết cài đặt của nhau Kết luận Lý giải Cho phép đa kế thừa hành vi và giảm sự phụ thuộc chặt chẽ (loose coupling)
Câu 19:Vấn đề 'Diamond Problem' (vấn đề hình thoi) phát sinh trong trường hợp nào?
💡 Lời giải chi tiết:
Vấn đề hình thoi gây ra sự nhập nhằng khi lớp con không biết nên kế thừa phương thức từ lớp cha nào trong đa kế thừa Kết luận Lý giải Khi một lớp kế thừa từ hai lớp cha mà cả hai lớp cha đó lại cùng kế thừa từ một lớp tổ tiên
Câu 20:Một 'Final class' (lớp cuối cùng/lớp niêm phong) là lớp có đặc điểm gì?
💡 Lời giải chi tiết:
Việc đánh dấu một lớp là final giúp ngăn chặn việc thay đổi cấu trúc hoặc hành vi của lớp đó thông qua kế thừa Kết luận Lý giải Lớp không thể bị kế thừa bởi bất kỳ lớp nào khác
Câu 21:Phương thức nào được gọi khi một đối tượng bị hủy để giải phóng tài nguyên?
💡 Lời giải chi tiết:
Destructor (hàm hủy) chịu trách nhiệm dọn dẹp các tài nguyên như bộ nhớ hoặc file đã được đối tượng chiếm dụng trong quá trình sống Kết luận Lý giải Finalizer/Destructor
Câu 22:Mục đích của việc sử dụng các phương thức 'Getter' và 'Setter' là gì?
💡 Lời giải chi tiết:
Getter và Setter là công cụ thực thi tính đóng gói bằng cách cung cấp giao diện an toàn để đọc và ghi dữ liệu Kết luận Lý giải Để kiểm soát quyền truy cập và hợp lệ hóa dữ liệu của các thuộc tính private
Câu 23:Khái niệm 'Early Binding' (liên kết sớm) thường liên quan đến hiện tượng nào?
💡 Lời giải chi tiết:
Liên kết sớm xảy ra tại thời điểm biên dịch khi trình biên dịch xác định chính xác phương thức nào sẽ được gọi dựa trên tham số Kết luận Lý giải Nạp chồng phương thức (Method Overloading)
Câu 24:Khái niệm 'Late Binding' (liên kết muộn) cho phép thực hiện tính chất nào của OOP?
💡 Lời giải chi tiết:
Liên kết muộn cho phép chương trình quyết định phương thức cụ thể của lớp con nào sẽ được thực thi khi chạy ứng dụng Kết luận Lý giải Đa hình lúc chạy (Runtime Polymorphism)
Câu 25:Một phương thức không có nội dung thực thi và buộc các lớp con phải ghi đè được gọi là gì?
💡 Lời giải chi tiết:
Phương thức trừu tượng chỉ định nghĩa chữ ký phương thức để thiết lập một tiêu chuẩn chung cho tất cả các lớp dẫn xuất Kết luận Lý giải Phương thức ảo thuần túy hoặc phương thức trừu tượng (Pure Virtual/Abstract Method)