What is a nested class and its types
๐ก Concept: Nested Classes
Nested classes are classes defined within another class in Java, used to logically group classes and improve encapsulation.
๐ Quick Intro
Java supports static nested classes, inner classes, local classes, and anonymous classes as types of nested classes.
๐ง Analogy
Nested classes are like a toolbox within a toolbox: smaller tools (classes) grouped inside a larger tool (class) for better organization.
๐ง Technical Explanation
- Static nested classes are like static members; do not require an instance of outer class.
- Inner classes are associated with an instance of the outer class.
- Local classes are defined within a method.
- Anonymous classes have no name and are used for quick implementations.
- Nested classes increase encapsulation and readability.
๐ฏ Use Cases
- โ Group helper classes within main classes.
- โ Implement event listeners or callbacks with anonymous classes.
- โ Improve modularity and encapsulation.
๐ป Example: Nested Classes in Java
public class Outer {
private int outerValue = 10;
// Static nested class
static class StaticNested {
void display() {
System.out.println("Inside static nested class");
}
}
// Inner class
class Inner {
void display() {
System.out.println("Outer value is " + outerValue);
}
}
}
public class TestNested {
public static void main(String[] args) {
Outer.StaticNested staticNested = new Outer.StaticNested();
staticNested.display();
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
inner.display();
}
}

โ Interview Q&A
Q1: What is a nested class?
A: A class inside another class.
Q2: What types of nested classes are there?
A: Static nested, inner, local, anonymous.
Q3: How is static nested different from inner?
A: Static nested does not require outer instance.
Q4: Can nested classes access outer class members?
A: Inner classes can; static nested cannot.
Q5: What is an anonymous class?
A: A class without a name used for quick implementation.
Q6: Are nested classes recommended?
A: Yes, for encapsulation.
Q7: Can nested classes be static?
A: Yes.
Q8: Can nested classes implement interfaces?
A: Yes.
Q9: Are nested classes type-safe?
A: Yes.
Q10: How to instantiate inner classes?
A: Using outer.new Inner().
๐ MCQs
Q1. What is a nested class?
- Class inside another class
- Interface
- Method
- Variable
Q2. Types of nested classes?
- Static only
- Inner only
- Static nested, inner, local, anonymous
- None
Q3. Static nested vs inner?
- Same
- Static nested no outer instance
- Inner no outer instance
- Both need outer instance
Q4. Can nested classes access outer members?
- Yes all
- Inner yes, static no
- No
- Sometimes
Q5. What is anonymous class?
- Class with name
- Class without name
- Interface
- Enum
Q6. Are nested classes recommended?
- No
- Yes
- Sometimes
- Rarely
Q7. Can nested classes be static?
- No
- Yes
- Only inner
- Depends
Q8. Can nested classes implement interfaces?
- No
- Yes
- Sometimes
- Never
Q9. Are nested classes type-safe?
- No
- Yes
- Maybe
- Depends
Q10. How to instantiate inner classes?
- Using new Inner()
- Using outer.new Inner()
- Using Outer.Inner()
- Using Inner()
๐ก Bonus Insight
Nested classes help organize code logically and improve encapsulation in complex applications.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!