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.
Example -
Output -
Making Inner class Static
Example
Output-