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.
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.salarywithin theEmployeeclass, 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 –
protectedand 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
staticmeans – you almost certainly don’t want these variables to be statics, as they apply to eachEmployeerather than theEmployeeconcept in general. It’s odd forDEPARTMENTto be a constant here, too.)