Access Modifiers
About
Access modifiers in Java control the visibility of classes, methods, variables, and constructors. They determine who can access a particular member of a class.
Types of Access Modifiers
private
✅ Yes
❌ No
❌ No
❌ No
default
(no modifier)
✅ Yes
✅ Yes
❌ No
❌ No
protected
✅ Yes
✅ Yes
✅ Yes
❌ No
public
✅ Yes
✅ Yes
✅ Yes
✅ Yes
1. Private Access Modifier (private
)
private
)Scope: Accessible only within the same class. Use case: Used for data hiding and encapsulation.
Example:
2. Default (No Modifier) Access (Package-Private)
Scope: Accessible within the same package only. Use case: Used when members should be shared within a package but not outside.
Example:
3. Protected Access Modifier (protected
)
protected
)Scope: Accessible within the same package and in subclasses (even in different packages). Use case: Used for inheritance to allow controlled access to subclasses.
Example:
4. Public Access Modifier (public
)
public
)Scope: Accessible everywhere (within and outside the package). Use case: Used when members should be fully accessible.
Example:
Access Modifier Usage with Classes
private
❌ Not allowed
✅ Yes
✅ Yes
✅ Yes
default
✅ Yes
✅ Yes
✅ Yes
✅ Yes
protected
❌ Not allowed
✅ Yes
✅ Yes
✅ Yes
public
✅ Yes
✅ Yes
✅ Yes
✅ Yes
Example:
When to Use Which Access Modifier?
Hide internal implementation
private
Allow subclass access but hide from external classes
protected
Allow access within the same package
default
(no modifier)
Make it accessible to everyone
public
Last updated
Was this helpful?