Introduction to Modifiers
📊 Modifier Usage Table
| Modifier | Top Level Class | Class Variables | Local Variables | Class Blocks | Local Blocks | Constructors | Methods |
|---|---|---|---|---|---|---|---|
| private | NA | A | NA | NA | NA | A | A |
| protected | NA | A | NA | NA | NA | A | A |
| public | A | A | NA | NA | NA | A | A |
| final | A | A | A | NA | NA | NA | A |
| static | NA | A | NA | A | NA | NA | A |
| abstract | A | NA | NA | NA | NA | NA | A |
| native | NA | NA | NA | NA | NA | NA | A |
| strictfp | A | NA | NA | NA | NA | NA | A |
| synchronized | NA | NA | NA | NA | A | NA | A |
| transient | NA | A | NA | NA | NA | NA | NA |
| volatile | NA | A | NA | NA | NA | NA | NA |
📝 Legend:
- A → Allowed
- NA → Not Allowed
⚠️ Important Notes
🔹 1. Top-Level Class Modifiers
- Allowed:
public,abstract,final,strictfp - Not allowed:
private,protected,static
🔹 2. Local Variables
- Only modifier allowed:
final
🔹 3. Constructors
- Cannot use:
static,final,abstract
🔹 4. Methods
- Can use most modifiers like:
public,private,protectedstatic,final,abstract,synchronized,native,strictfp
🔹 5. Special Modifiers
transient→ only for variablesvolatile→ only for variables
🔹 6. Order of Modifiers
public static final int x=10;
✔ Order can be anything, but convention matters
🧠 Quick Summary
int[]...→ var-args of arrays- Var-args behaves like array internally
- Modifiers define access + behavior
- Not all modifiers are allowed everywhere