Static Field Summary
Class Fields (Static Fields)
- Fields associated with class rather than instances
- Declared using
static
keyword - Shared across all instances of the class
- Can be accessed without creating class instance
- Example:
class Math { public static final double PI = 3.141592653589793; }
Common Modifiers for Class Fields
static
: Makes field belong to classfinal
: Makes field value unchangeablepublic
: Makes field accessible outside class- Common combination:
public static final
for constants
Accessing Class Fields
- Access through class name:
Math.PI
- Can use import statement to simplify access
- Example:
import java.lang.Math; // Now can use Math.PI directly
Instance Fields vs Class Fields
-
Instance fields:
- Belong to specific object instances
- Each instance has its own copy
- Accessed through object reference
-
Class fields:
- Belong to class itself
- Single copy shared by all instances
- Accessed through class name
- Exist even if no instances created
Example Usage
class Circle {
private Point c;
private double r;
public static final double PI = Math.PI; // class field
public double getArea() {
return PI * this.r * this.r; // using class field
}
}
Best Practices
- Use class fields for:
- Constants
- Values shared across all instances
- Configuration parameters
- Pre-computed values
- Make class fields final when possible
- Use meaningful names for constants
- Consider using existing constants (e.g., Math.PI)