对于我在大学的学习,我不得不做一些丑陋的java基础知识,比如没有封装的工作,同一类的主要方法等等.(我不想在java风格指南上开一个讨论,我只想澄清一下,我不会在大学之外写这样的东西)
我偶然发现了一个我无法向自己解释的行为:
public class Person {
// fields
private int age;
public static void main(String[] args) {
Person foo1 = new Person();
foo1.age = 40;
System.out.println(foo1.age);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码编译运行没有错误?我怎么可能访问私人领域?由于主要方法在同一个类中而导致奇怪的行为?
cle*_*tus 17
因为静态方法main是类的成员,Person因此可以访问任何私有字段或方法Person.
你在担心什么?有人会写一个类,然后能够从他们自己的类访问这些方法?
如果您要担心任何事情,请担心您可以使用反射访问任何类中的私有字段,但即使这对于许多有用的事情都是必要的.
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |