Java - Creating Objects of Inner Classes

Introduction

An instance of a member inner class always exists within an instance of its enclosing class.

The general syntax to create an instance of a member inner class is as follows:

OuterClassReference.new MemberInnerClassConstructor()

Consider the following code

class Outer {
   public class Inner {
   }
}

You need to use the new operator on the out reference variable to create an object of the Inner class.

out.new Inner();

To store the reference of the instance of the Inner member inner class in a reference variable:

Outer.Inner in = out.new Inner();

Demo

class Car {
  int year;//from  w w  w  . j ava 2s . c om

  public Car(int y) {
    year = y;
  }

  public class Tire {
    private double price;

    public Tire(double d) {
      price = d;
    }

    public double getPrice() {
      return price;
    }
    
  }

  public int getYear() {
    return year;
  }

}

public class Main {
  public static void main(String[] args) {
    // Create an instance of Car with year as 2015
    Car c = new Car(2015);

    // Create a Tire for that car
    Car.Tire t = c.new Tire(9.0);

    System.out.println("Car's year:" + c.getYear());
    System.out.println("Car's tire :" + t.getPrice());
  }
}

Result