str*_*der 3 java access-modifiers
我最近开始使用JDK1.6学习Java.如果这是一个愚蠢的问题,请原谅.
如果私有变量可以由main()中的对象直接访问,它们如何"私有"?
public class Account1
{
private int accountNum;
private String name;
Account1() {
accountNum = 1101;
name = "Scott";
}
public void showData() {
System.out.println("Account Number: " + accountNum +
"\nName: " + name);
}
public static void main(String[] args) {
Account1 myA1 = new Account1();
myA1.showData();
System.out.println(myA1.accountNum); //Works! What about "Private"?!
}
}
Run Code Online (Sandbox Code Playgroud)
这给出了输出:
Account Number: 1101
Name: Scott
1101
Run Code Online (Sandbox Code Playgroud)
您的main位于Account1类中,因此它仍然在同一范围内.
可以从属于相同类型的任何代码访问私有变量.如果您的main方法在一个单独的类中,那么它将无法访问它们(不使用反射).