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
- Instance Inner classes
- Static Inner classes
- Local Inner classes
- 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();
}
}