Thursday, September 18, 2025

private static Variable in Java

 In Java, a private static variable combines two key characteristics:

  • private
    This access modifier restricts the visibility of the variable, meaning it can only be accessed from within the class in which it is declared. No other class, including subclasses, can directly access or modify this variable.
  • static
    This keyword indicates that the variable belongs to the class itself, rather than to any specific instance (object) of the class. There is only one copy of a static variable, shared by all instances of the class. If no instances are created, the static variable still exists and is associated with the class.
Key Characteristics and Use Cases:
  • Class-level scope
    private static variables store data that is common to all instances of a class or data that is associated with the class as a whole, not individual objects.
  • Encapsulation
    The private modifier enforces encapsulation, ensuring that the internal state represented by the variable cannot be directly manipulated from outside the class. This promotes data integrity and allows the class to control how its internal data is accessed and modified, typically through public static methods (getters/setters).
  • Shared state
    They are often used to maintain shared state or configuration data across all instances of a class. For example, a private static int counter; can track the number of objects created for a class.
  • Constants
    When combined with finalprivate static final variables are used to define constants that are specific to a class and cannot be changed after initialization. For instance, a mathematical constant like private static final double PI = 3.14159;.
  • Utility classes
    In utility classes that are not intended to be instantiated, private static variables can hold data or resources used by static utility methods.

class MyClass {
    private static int instanceCount = 0; // Tracks the number of MyClass instances

    public MyClass() {
        instanceCount++; // Increment count each time a new instance is created
    }

    public static int getInstanceCount() {
        return instanceCount; // Public static method to access the private static variable
    }
}

public class Main {
    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        MyClass obj2 = new MyClass();

        System.out.println("Number of MyClass instances: " + MyClass.getInstanceCount()); // Output: 2
    }
}


Reference  from  AI Review Google

No comments:

Post a Comment

The AI Driven Software Developer, Optimize Innovate Transform

  The AI-Driven Software Developer: Optimize, Innovate, Transform": AI Transformation in Software Development : Understand how AI is re...