InnerClass
An InnerClass is a class defined within another class in object-oriented programming. This concept is commonly found in languages such as Java, C++, and C#. InnerClasses are used to logically group classes that belong together, encapsulate a class within another class, or provide a way to implement helper classes without exposing them to the outside world.
InnerClasses have access to the members of the enclosing class, including private members, which can be useful
There are two main types of InnerClasses: non-static (or inner) and static (or nested). Non-static InnerClasses
InnerClasses can be particularly useful in scenarios where the inner class is only relevant to the outer