Java Access Modifiers – Complete Guide with Examples
Learn all Java access modifiers, including public, private, protected, and default (package-private), with examples to control access to classes, methods, and variables for secure object-oriented programming.
Access Modifiers in Java – Complete Detailed Tutorial
Access Modifiers in Java are keywords used to set the visibility or accessibility of classes, methods, and variables.
They help in data encapsulation and security in object-oriented programming.
1. Types of Access Modifiers
Java has four main access modifiers:
| ModifierClassPackageSubclassWorld | ||||
| public | Yes | Yes | Yes | Yes |
| private | Yes | No | No | No |
| protected | Yes | Yes | Yes | No |
| default (no keyword) | Yes | Yes | No | No |
2. public Access Modifier
- The member is accessible from anywhere
- Used for classes, methods, and variables
Example:
Output:
3. private Access Modifier
- The member is accessible only within the same class
- Commonly used for data hiding and encapsulation
Example:
Output:
4. protected Access Modifier
- Accessible within same package and subclasses (even in different package)
- Often used in inheritance
Example:
Output:
5. default Access Modifier (Package-Private)
- If no modifier is specified, it is called default
- Accessible only within the same package
- Not accessible outside the package
Example:
Output:
6. Summary of Access Modifiers
| ModifierClassPackageSubclassWorld | ||||
| public | Yes | Yes | Yes | Yes |
| private | Yes | No | No | No |
| protected | Yes | Yes | Yes | No |
| default | Yes | Yes | No | No |
Key Points:
- private → data hiding
- protected → inheritance support
- public → accessible everywhere
- default → package-level access