Java - Inner Classes

Inner Classes

class Outer {
  class Inner { int value(){ return 1; } }        // member inner
  static class Nested { int value(){ return 2; } } // static nested
}
var o = new Outer();
var i = o.new Inner();
var n = new Outer.Nested();

Use anonymous classes to provide small one-off implementations (often replaced by lambdas for SAM types).

Try it

  1. Instantiate a member inner class and a static nested class; call a method on each.
  2. Create an anonymous inner class to implement a small interface on the fly.