公共静态和私有静态变量之间的区别

And*_*irl 12 java variables static private public

class Employee{
 // salary  variable is a private static variable
private static double salary;

// DEPARTMENT is a constant
 public static final String DEPARTMENT = "Development";

public static void main(String args[]){
   salary = 1000;
  System.out.println(DEPARTMENT+  "  average salary:"+salary);
}
}
Run Code Online (Sandbox Code Playgroud)

这个java程序包含一个静态变量.但我无法理解公共和私有静态变量之间的区别.

tru*_*ity 27

  • public变量是可访问的从任何地方(当然,任何地方的类是可访问的).

  • 一个private变量是只在类中访问.

  • static变量属于类,而不是一类的一个实例.

  • 请注意,该变量DEPARTMENT也是final,这意味着一旦设置它就无法修改.这在这里很重要,因为这就是保存这个不好代码的原因 - 变量是一个常量,因此可以在类外部提供对它的访问权限.


Jon*_*eet 25

公共变量可在代码中的任何位置访问- 私有变量只能在类本身中访问.在这种情况下,你使用Employee.salary的内部Employee类,所以这很好.

请注意,变量是静态的是一个完全独立的问题 - 方法和类的可访问性与变量的方式相同.

还有其他级别的访问权限 - protected以及默认的"包"访问权限(无法明确指定).有关更多详细信息,请参见Java语言规范的第6.6节.

(作为一个附带问题,它也值得学习什么static意思 - 你几乎肯定希望这些变量是静态的,因为它们适用于每个 Employee而不是Employee概念.DEPARTMENT在这里成为常数也很奇怪. )