Nói chung, các biến công cộng có thể được truy cập bởi tất cả mọi người và các biến riêng tư chỉ có thể được truy cập từ trong cá thể hiện tại của lớp đó. Trong ví dụ của bạn, bạn được phép truy cập biến số x
từ phương thức main
, bởi vì phương thức đó nằm trong lớp tĩnh. Nếu bạn đang tự hỏi tại sao bạn được phép truy cập nó từ một thể hiện khác của lớp tĩnh hơn lớp bạn đang sử dụng (thường không được phép cho các biến riêng tư), nó đơn giản chỉ vì các biến tĩnh don ' t tồn tại trên cơ sở từng trường hợp, nhưng trên cơ sở mỗi lớp. Điều này có nghĩa là cùng một biến tĩnh của A có thể được truy cập từ tất cả các phiên bản A.
Nếu đây không phải là trường hợp, không ai có thể truy cập biến tĩnh riêng tư, vì nó không thuộc về một ví dụ, nhưng tất cả đều là.
Tại sao không? Bạn có lý do gì mà bạn nghĩ rằng điều đó không nên có thể? – EJP
Bạn cũng có thể làm Static.x không cần tạo đối tượng. – nikhil
IIRC, Josh Bloch đã nói rằng cho phép đây là một quyết định tồi tệ. –