Đoạn mã sau có lỗi biên dịch gì?
class Person {
protected String name;
public int age;
};
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
}
}
class Person {
protected String name;
public int age;
};
public class Main {
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
}
}
Trả lời:
Đáp án đúng: B
Trong đoạn mã, biến `name` của lớp `Person` được khai báo là `protected`. Điều này có nghĩa là nó chỉ có thể được truy cập từ bên trong lớp `Person`, từ các lớp con của `Person` và từ các lớp trong cùng package. Trong hàm `main` của lớp `Main`, chúng ta đang cố gắng truy cập biến `name` từ bên ngoài lớp `Person` (và không phải từ một lớp con hoặc trong cùng package), điều này là không được phép. Do đó, sẽ có lỗi biên dịch liên quan đến việc truy cập `protected` của `name`. Biến `age` được khai báo là `public` nên không gây ra lỗi truy cập.
Vậy, đáp án đúng là B.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
