Đ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
Đoạn mã trên có lỗi biên dịch vì biến `name` trong lớp `Person` được khai báo là `protected`. Điều này có nghĩa là `name` 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 đoạn mã trên, biến `name` đang được truy cập trực tiếp từ lớp `Main`, là một lớp khác package (ngầm định) và không phải là lớp con của `Person`. Do đó, trình biên dịch sẽ báo lỗi "name has protected access". Biến `age` được khai báo là `public` nên có thể truy cập từ bất kỳ đâu.
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
