javavariablesstaticprivatepublic

Difference between public static and private static variables


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);
}
}

This java program contains a static variable. But I cannot understand the difference between public and private static variables.


Solution

  • A public variable is accessible everywhere in the code - a private variable is only accessible within the class itself. In this case you're using Employee.salary within the Employee class, so that's fine.

    Note that the variable being static is a completely separate matter - and methods and classes have accessibility in the same way as variables.

    There are other levels of access available too - protected and the default "package" access (which can't be specified explicitly). See section 6.6 of the Java Language Specification for more details.

    (As a side matter, it's also worth learning about what static means - you almost certainly don't want these variables to be statics, as they apply to each Employee rather than the Employee concept in general. It's odd for DEPARTMENT to be a constant here, too.)