Java - (Inner|Nested) Class


The Java programming language allows you to define a class within another class.

Nested or Inner ?

  • Nested classes that are declared static are called static nested classes.
  • Non-static nested classes are called inner classes and requires an instance of the outer class to be referenced.
class OuterClass {
    static class StaticNestedClass {
    class InnerClass {

When to use ?

  • If a class is useful to only one other class, then it is logical to embed it in that class and keep the two together.
  • It increases encapsulation but increase dependency

<wrap>If you want to implement an hierarchy like of object see also Tree - Composite Type (Design Pattern)</note>

Documentation / Reference

Powered by ComboStrap