Difference between public static and private static variables

前端 未结 5 1743
星月不相逢
星月不相逢 2020-12-02 15:07
class Employee{
 // salary  variable is a private static variable
private static double salary;

// DEPARTMENT is a constant
 public static final String DEPARTMENT =         


        
相关标签:
5条回答
  • 2020-12-02 15:20
    private static double salary
    

    is available only within the class and can be accessed as

    salary or Employee.salary
    

    While

     public static final String DEPARTMENT
    

    Could be accessed from outside of this class too as follows

    Employee.DEPARTMENT
    
    0 讨论(0)
  • 2020-12-02 15:26

    public static - can be accessed from within the class as well as outside the class.

    private static - can be access from within the class only.

    Static's are considered to be anti-OO in OOPS.

    class Dog
    {
        public static string X;
        private static string y;
    }
    

    y can be accessed only from inside Dog via either Dog.y or just y. X can be accessed anywhere via Dog.X or, if you're either in the class or using using static Dog as a header, just X.

    0 讨论(0)
  • 2020-12-02 15:29

    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.)

    0 讨论(0)
  • 2020-12-02 15:34

    Obviously, you cannot access private static variable from outside the class, and you can access public static variable from everywhere.

    0 讨论(0)
  • 2020-12-02 15:40
    • A public variable is accessible from anywhere (well, anywhere where the class is accessible).

    • A private variable is only accessible inside the class.

    • A static variable belongs to the class rather than to an instance of a class.

    • Notice that the variable DEPARTMENT is also final, which means that it cannot be modified once it is set. This is important here because that's what saves this from being bad code -- the variable is a constant so it's okay to give things outside the class access to it.

    0 讨论(0)
提交回复
热议问题