Java Modifiers
Modifiers in Java are keywords that you add to definitions of classes, methods, and variables to change their meanings. Modifiers fall into two categories: access modifiers and non-access modifiers.
1. Access Modifiers
Access modifiers set the accessibility (visibility) of classes, methods, and variables.
public
: Accessible from any other class.private
: Accessible only within the declared class.protected
: Accessible within the same package or subclasses.default
(no modifier): Accessible within the same package.
2. Non-Access Modifiers
Non-access modifiers provide functionality other than access control.
static
: Belongs to the class, rather than an instance.final
: Cannot be changed or inherited.abstract
: Cannot be instantiated and may contain abstract methods.synchronized
: Used in multithreading to control access.transient
: Skipped during serialization.volatile
: Value is not cached thread-locally.
3. Examples
3.1 Using Access Modifiers
public class Example {
private int privateVar;
public int publicVar;
protected int protectedVar;
int defaultVar; // default access modifier
}
3.2 Using Non-Access Modifiers
public final class Constants {
public static final double PI = 3.14159;
}
public abstract class Shape {
public abstract void draw();
}
4. Key Takeaways
- Modifiers adjust the behavior and accessibility of classes, methods, and variables.
- Access modifiers control visibility across different classes and packages.
- Non-access modifiers provide additional functionality like immutability and concurrency control.
- Understanding modifiers is crucial for encapsulation and proper class design.