Chương trình sẽ in ra kết quả gì khi thực thi đoạn mã sau?
package pac02;
public class ClassA {
protected int xA;
public String yA;
}
---------
package pac01;
import pac02.ClassA;
public class Test {
public static void main(String[] args) {
ClassA a = new ClassA();
a.xA = 12;
a.yA = "Hello";
System.out.println("a.xA = " + a.xA + "; a.yA = " + a.yA);
}
}
package pac02;
public class ClassA {
protected int xA;
public String yA;
}
---------
package pac01;
import pac02.ClassA;
public class Test {
public static void main(String[] args) {
ClassA a = new ClassA();
a.xA = 12;
a.yA = "Hello";
System.out.println("a.xA = " + a.xA + "; a.yA = " + a.yA);
}
}
Trả lời:
Đáp án đúng: D
Trong đoạn mã, biến `xA` của lớp `ClassA` đượ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 `ClassA`, từ các lớp con của `ClassA` và từ các lớp trong cùng package (pac02). Lớp `Test` nằm trong package `pac01`, khác với package của `ClassA`, và không phải là lớp con của `ClassA`. Do đó, việc truy cập `a.xA` trong lớp `Test` là không hợp lệ, gây ra lỗi biên dịch. Dòng `a.yA` sẽ không bị lỗi vì `yA` có access modifier là `public`.
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
