Trong Java, lớp bên trong có thể truy cập các thành viên riêng của lớp kèm theo. Nhưng lớp ngoài có thể truy cập các thành viên riêng của lớp bên trong không? Điều này là không phân biệt cho dù lớp bên trong là tĩnh hay không. Tôi nghĩ rằng điều này là không đúng nhưng đoạn mã sau dường như biên dịch và làm việc tốt.Trong các lớp lồng nhau Java, các lớp kèm theo có thể truy cập các thành viên private của các lớp bên trong không?
public class Outer {
class Inner {
private int i = 0;
private Inner() {}
}
public static void main(String[] args) {
Outer o = new Outer();
Outer.Inner oi = o.new Inner();
oi.i = 10;
}
}
Trông như tôi mong đợi. Ngoại trừ bạn có nghĩa là
oi.i = 10;
có? – BenNhân bản: http://stackoverflow.com/questions/1801718/outer-java-class-is-able-to-access-inner-class-private-members – finnw
Tôi không hiểu. Mã ngay tại đây. Tôi biết đầu ra. Tôi biết nó hoạt động. Tôi muốn hiểu lý do đằng sau nó. Bạn có nghĩ câu hỏi này không xứng đáng với câu trả lời không? – user236215