Java Inner Classes
Java Inner Classes
An inner class in Java is a class defined inside another class. It is used to logically group classes that are only used in one place, improve encapsulation, and increase readability.
Inner classes have access to the outer class members, even private ones.
✅ Types of Inner Classes in Java
| Inner Class Type | Description |
|---|---|
| Member Inner Class | Regular inner class inside another class |
| Static Inner Class | Can be accessed without creating an object of the outer class |
| Local Inner Class | Defined inside a method |
| Anonymous Inner Class | Class without a name, usually used with interfaces or overriding |
1️⃣ Member Inner Class
📌 Output:
2️⃣ Static Inner Class
-
Behaves like a static member.
-
Can be accessed without creating an instance of the outer class.
📌 Output:
3️⃣ Local Inner Class (Inside a Method)
📌 Output:
4️⃣ Anonymous Inner Class
Used when a class is needed only once, especially to override a method.
📌 Output:
🎯 Advantages of Inner Classes
✔ Better encapsulation
✔ Logical grouping of classes
✔ More readable and maintainable code
✔ Can access outer class private members
⚠ Notes
| Type | Needs Outer Object? | Can be static? |
|---|---|---|
| Member Inner Class | ✔ Yes | ✖ No |
| Static Inner Class | ✖ No | ✔ Yes |
| Local Inner Class | ✔ Yes (inside method) | ✖ No |
| Anonymous Inner Class | Depends | ✖ No |
⭐ Summary
Inner classes allow:
➡ Better structure
➡ Encapsulation
➡ Reusability
➡ Flexibility (especially anonymous class with overriding)
