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!

๐Ÿ” Navigation

๐Ÿ’ฌ Feedback
๐Ÿš€ Start Learning
Share:

Tags: