Java Inner Classes
Java Inner Class
It is possible to define a class within another class, such classes are known as nested classes.
The scope of a nested class is bounded by the scope of its enclosing class.
Thus, if class B is defined within class A, then B does not exist independently of A.
A nested class has access to the members, including private members, of the class in which it is nested.
However, the enclosing class does not have access to the members of the nested class.
A nested class that is declared directly within its enclosing class scope is a member of its enclosing class. It is also possible to declare a nested class that is local to a block.
Types of Nested Class -
Basically there can be two types of nested class -
1.Static Nested class.
2.Non-Static Nested class
1. Static nested Class
A static nested class is one that has the static modifier applied.
Because it is static, it must access the members of its enclosing class through an object.
That is, it cannot refer to members of its enclosing class directly. Because of this restriction, static nested classes are seldom used.
2. Non-Static nested Class
The most important type of nested class is the inner class.
An inner class is a non-static nested class.
It has access to all of the variables and methods of its outer class and may refer to them directly in the same way that other non-static members of the outer class do.
Making Inner class Static