Đoạn mã sau có lỗi biên dịch gì?
public class Person {
private String name;
protected int age;
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
System.out.println(p.name);
}
}
public class Person {
private String name;
protected int age;
public static void main(String[] args) {
Person p = new Person();
p.name = "Tom";
System.out.println(p.name);
}
}
Trả lời:
Đáp án đúng: A
Lỗi biên dịch xảy ra vì biến `name` được khai báo là `private` trong class `Person`. Điều này có nghĩa là nó chỉ có thể được truy cập từ bên trong class `Person`. Trong phương thức `main`, chúng ta đang cố gắng truy cập `p.name` từ bên ngoài class `Person` (mặc dù vẫn trong cùng một file), điều này là không được phép và gây ra lỗi biên dịch.
`protected` chỉ giới hạn truy cập bên trong package và các lớp con, còn `public` cho phép truy cập từ mọi nơi.
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
