Skip to main content

Inner Classes

When you define a class within another class then it is called as inner class or nested class.

Ex:

classOuter{

...

classInner{

...

}
}

Types of Inner Classes

  1. Instance Inner classes
  2. Static Inner classes
  3. Local Inner classes
  4. Anonymous classes

3.13.1 Instance Inner Classes

  • When you define a class within another class without static modifier, it is called as instance inner class.

Syntax to create instance inner class object from outside the outer class:

Outer.Inneroutob=newOuter().newInner();

or

Outeroutob=newOuter();

Outer.Innerinob=outob.newInner();

Lab571.java

classOuter{

inta=10;

staticintb=20;

voidm1(){
System.out.println("Outer -> m1()");
}

staticvoidm2(){
System.out.println("Outer -> m2()");
}

classInner{

intx=11;

voidshow(){

System.out.println("Inner -> show()");

System.out.println(a);

System.out.println(b);

System.out.println(x);

m1();

m2();
}
}
}

classLab571{

publicstaticvoidmain(String[]args){

Outeroutob=newOuter();

outob.m1();

outob.m2();

Outer.Innerinob=newOuter().newInner();

inob.show();
}
}