Nested Classes: Inner & Outer Class
The classes which are defined within another classes are known as Nested Classes. These are also known as Inner Class. The Class in which inner class resides are known as Outer Class. Inner Class has access to the private member of the outer class. But the Outer Class doesn't have access to the member of the inner class including public member also.
Types of nested classes
Nested classes are of two types :
- Static
- Non Static
Static nested classes are classes which is defined through static modifier. Static nested classes can access the member of the it's outer class through an object. Static inner classes can't access the member of the outer class direclty.
The non static classes have access to all the members of the it's outer class.
Example
Given below example will give you clear idea about inner or outer classes :
class Outer { int x = 100; void test() { Inner inner = new Inner(); inner.display(); } // Inner Class class Inner { void display() { System.out.println("display : x = " + x); } } } public class SimpleInnerClass { public static void main(String args[]) { Outer outer = new Outer(); outer.test(); } }
Output
C:\Program Files\Java\jdk1.6.0_18\bin>javac
SimpleInnerClass .java C:\Program Files\Java\jdk1.6.0_18\bin>java SimpleInnerClass display : x = 100 |