Understanding Java Access Modifiers
| Outer Class | Inner Class | Methods | Variables | Blocks | Outer Interface | Inner Interface | Outer Enum | Inner Enum | Constructor | |
| Public | Y | Y | Y | Y | - | Y | Y | Y | Y | Y |
| Private | - | Y | Y | Y | - | - | Y | - | Y | Y |
| Protected | - | Y | Y | Y | - | - | Y | - | Y | Y |
| Default | Y | Y | Y | Y | - | Y | Y | Y | Y | Y |
| Final | Y | Y | Y | Y | - | - | - | - | - | - |
| Abstract | Y | Y | Y | - | - | Y | Y | - | - | - |
| Static | - | Y | Y | Y | Y | - | Y | - | Y | - |
| Synchronized | - | - | Y | - | Y | - | - | - | - | - |
| Native | - | - | Y | - | - | - | - | - | - | - |
| Strictfp | Y | Y | - | - | - | Y | - | Y | Y | - |
| Transient | - | - | - | Y | - | - | - | - | - | - |
| Volatile | - | - | - | Y | - | - | - | - | - | - |
- The modifiers which are applicable for inner classes but not for outer classes are Private,Protected and Static
- The modifiers which are applicable for classes but not for interface are Final
- The modifiers which are applicable for classes but not for enums are Final and Abstract
- The modifiers which are applicable only for methods are Native
- Interface defined inside a class is static weather we are declaring or not
- Interface defined inside a interface is static and public weather we are declaring or not
- Class defined inside a interface is static and public weather we are declaring or not
No Comments Yet!!