The link to the outer class,java tutorial,java tutorials

outer class



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
  • 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.

  • Non Static
  • The non static classes have access to all the members of the it's outer class.


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 Class
class Inner {
void display() {
System.out.println("display : x = " + x);


public class SimpleInnerClass {
public static void main(String args[]) {
Outer outer = new Outer();



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