Inner Classes in Java — Java Technical Interview Questions & Answers

Inner Classes in Java

Inner Classes in Java

  • Inner Classes in Java: inner/nested classes live inside another class. Inner Classes in Java is useful for helpers tightly coupled to the outer type.
  • Inner Classes in Java: anonymous class = one-off implementation.
  • Inner Classes in Java: static nested class does not need outer instance.
  • Write one tiny example for Inner Classes. Compile, print one result, and say the output out loud before you type.
  • Use Inner Classes only when the problem needs it. Don’t force it into every program. Know one beginner trap.
  • Let's take this on the board with one tiny Main class — no extra files. Inner Classes in Java — static nested Pair groups two ints with the outer Main type. Start from main, go line by line, and stop at each print. That output is the proof for Inner Classes.

Technical Interview Tip: Give one real use: event listener / Comparator.

Code Examples for Inner Classes in Java

Example

public class Main {
  static class Pair {
    final int a, b;
    Pair(int a, int b) { this.a = a; this.b = b; }
  }
  public static void main(String[] args) {
    Pair p = new Pair(2, 3);
    System.out.println(p.a + p.b);
  }
}

Inner Classes in Java — static nested Pair groups two ints with the outer Main type.

How to Explain Inner Classes in Java to an Interviewer

What is Inner Classes?

Inner Classes is a Java idea you should explain with one small example. Know the keyword / API used for Inner Classes. Type a tiny Main and print one result. For Inner Classes, say the output before you code.

Why do we use Inner Classes in Java?

Makes the program clearer or safer Inner Classes is a Java idea you should explain with one small example.

Write one small example of Inner Classes.

Show syntax Say what prints

What mistake do beginners make with Inner Classes?

Only the name, no example Inner Classes — only memorising the heading. No example, no trap.

Where is Inner Classes used in a real program?

Day-to-day Java code