Trong C#, ........không được cài đặt phần thân của
Đáp án đúng: C
Trong C#, phương thức trừu tượng (được khai báo với từ khóa abstract) không được cài đặt phần thân. Phương thức trừu tượng chỉ được khai báo trong một lớp trừu tượng và phải được triển khai (override) trong các lớp con không trừu tượng. Các phương thức, lớp và struct đều có thể có phần thân (implementation).
Câu hỏi liên quan
- Phương án 1: Hàm destructor dùng để hủy vùng nhớ đã cấp cho con trỏ `this`. Phát biểu này đúng. Destructor chịu trách nhiệm giải phóng tài nguyên mà đối tượng nắm giữ, bao gồm cả vùng nhớ được cấp phát động cho con trỏ `this`.
- Phương án 2: Một lớp luôn luôn có hàm destructor. Phát biểu này sai. Nếu lập trình viên không định nghĩa destructor, trình biên dịch sẽ tự động tạo một destructor mặc định (nếu cần thiết). Vì vậy, lớp *có thể* không có destructor do người dùng định nghĩa, nhưng về mặt khái niệm, nó vẫn có một destructor (do compiler cung cấp).
- Phương án 3: Hàm destructor có thể là 1 hàm ảo. Phát biểu này đúng. Việc khai báo destructor là ảo rất quan trọng trong các lớp đa hình để đảm bảo giải phóng tài nguyên đúng cách khi đối tượng được hủy thông qua con trỏ hoặc tham chiếu đến lớp cơ sở.
- Phương án 4: Các phương án trên đều không đúng. Phát biểu này sai vì phương án 2 sai.
Vậy, phương án sai là "Một lớp luôn luôn có hàm destructor".
Trong C#, thuộc tính (properties) của một lớp thường đi kèm với hai phương thức truy cập là get và set. Phương thức get được sử dụng để lấy (đọc) giá trị của thuộc tính, trong khi phương thức set được sử dụng để thiết lập (gán) giá trị cho thuộc tính đó. Việc sử dụng get và set cho phép kiểm soát việc truy cập và thay đổi giá trị của thuộc tính, đồng thời có thể thêm các logic bổ sung vào quá trình này (ví dụ: kiểm tra tính hợp lệ của dữ liệu trước khi gán). Điều này giúp tăng tính bảo mật và khả năng quản lý dữ liệu của lớp.
Trong C#, khi khai báo các thành phần thuộc tính (properties) của một lớp, chúng ta thường bắt đầu mỗi câu lệnh khai báo bằng việc xác định phạm vi truy cập của thuộc tính đó, ví dụ như private, public, hoặc protected. Phạm vi truy cập này quy định mức độ mà các phần khác của chương trình có thể truy cập và thay đổi giá trị của thuộc tính.
Ví dụ:
public string Ten {
get { return ten; }
set { ten = value; }
}
Trong ví dụ trên, public chỉ định rằng thuộc tính Ten có thể được truy cập từ bất kỳ đâu trong chương trình.
Các lựa chọn khác không chính xác vì:
- Từ khóa
Propertieskhông phải là từ khóa bắt buộc để khai báo thuộc tính. - Từ khóa
Regionđược sử dụng để nhóm các đoạn mã liên quan, giúp mã nguồn dễ đọc và quản lý hơn, nhưng không liên quan đến việc khai báo thuộc tính. - Việc khai báo kiểu dữ liệu của thuộc tính là cần thiết, nhưng không phải là thành phần được khai báo đầu tiên trong câu lệnh khai báo thuộc tính.
Phương án 1: "Tất cả các phương án gộp lại" không phù hợp vì không rõ ràng và không cung cấp thông tin cụ thể về thuộc tính.
Phương án 2: "SBD, Họ và tên, Ngày sinh, Giới tính, Phòng thi, Giờ thi" là phương án đúng. Các thuộc tính này mô tả đầy đủ thông tin cần thiết của một thí sinh, phù hợp với yêu cầu in danh sách thí sinh theo phòng.
Phương án 3: "Số thí sinh, mảng các thí sinh" là thuộc tính của lớp "Danh sách thí sinh theo phòng", không phải của lớp "Thí sinh".
Phương án 4: "Mảng SBD, Mảng Họ và tên, Mảng Ngày sinh, Mảng Giới tính, Mảng Phòng thi, Mảng Giờ thi" không phù hợp. Cách tổ chức này không thể hiện được thông tin của từng thí sinh riêng biệt, mà chỉ lưu trữ các thông tin riêng lẻ theo từng thuộc tính. Điều này gây khó khăn trong việc truy xuất thông tin đầy đủ của một thí sinh.
Vậy, phương án 2 là đáp án chính xác nhất.
Trong C++, thủ tục khởi tạo (constructor) của một class có những đặc điểm sau:
- Tên của constructor phải trùng với tên của class.
- Constructor không có kiểu trả về (ngay cả void cũng không).
- Constructor thường được khai báo là
publicđể có thể truy cập và sử dụng từ bên ngoài class.
Dựa vào các đặc điểm trên, ta xét các phương án:
- Phương án 1: "Tất cả câu trên đều sai". Cần xem xét các phương án còn lại trước khi kết luận.
- Phương án 2: "
public diem (){}". Phương án này thỏa mãn tất cả các điều kiện của constructor: tên trùng với tên class (diem), không có kiểu trả về, và được khai báo làpublic. - Phương án 3: "
public diem{}". Thiếu dấu ngoặc đơn(), đây không phải là cú pháp đúng của constructor. - Phương án 4: "
public string diem(){}". Có kiểu trả về làstring, vi phạm quy tắc constructor không có kiểu trả về.
Vậy, phương án đúng là phương án 2.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.