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

2022-09-04 23:44:24
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);
}
}

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


答案 1
  • 变量可以从任何地方访问(好吧,在类可访问的任何地方)。public

  • 变量只能在类内部访问。private

  • 变量属于类而不是类的实例。static

  • 请注意,变量也是 ,这意味着一旦设置了它,它就不能被修改。这在这里很重要,因为这就是避免错误代码的原因 - 变量是一个常量,所以可以让类外的东西访问它。DEPARTMENTfinal


答案 2

公共变量在代码中的任何位置都可以访问 - 私有变量只能在类本身内访问。在本例中,您在类中使用,因此没关系。Employee.salaryEmployee

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

还有其他级别的访问可用 - 以及默认的“包”访问(无法显式指定)。有关更多详细信息,请参阅 Java 语言规范的第 6.6 节protected

(顺便说一句,也值得了解一下意味着什么 - 你几乎肯定不希望这些变量是静态的,因为它们适用于每个变量而不是一般的概念。在这里成为常量也很奇怪。staticEmployeeEmployeeDEPARTMENT