A)
->defining a class with in another class is known as nesting of the class.
Ex:
class A
{
class B
{
}//nested class, and inner class.because it is not static class.
}//enclosing class or outer class.
->static class is declared in inside an another class then it does not become an inner class.
Note:
non-static nested class is known as “inner class”. In the above example class B is nested but not an inner class.
non-static nested class is known as “inner class”. In the above example class B is nested but not an inner class.
Ex:
class D
{
static c
{
}//nested class, but not an inner class , because of static class.
}//outer class.
->we have three different kinds of inner classes.
1) Member inner class
2) Method-local inner class
3) Anonymous inner class- i.e. nameless
class A
{
static class B
{
}
class C
{
}
}
class nestedclass
{
public static void main(String args[])
{
A a = new A();//outer class instance created.
A.C c = new C();//inner class instance created.
A.B b = new A.B();//nested class instance.
}
}
->without creating outer class instance we can’t created inner class instance. But without creating outer class instance we can created static nested class instance.
Note:
outer class members are available in the nested classes.
outer class members are available in the nested classes.
But vis versa is not true, because of scope problem. i.e. nested class variables are not available to outer class.
->if a class is defined in a method it is known as method local inner class.
Ex:
void x()
{
class A
{
}//method-local inner class.
}
->nameless inner class is known as anonymous inner class. Specialty of anonymous inner class is, class definition and object creation happens at the same place.
->most frequent usage of anonymous inner class is while resisting a listener in event handling
in GUI programming.
Ex:
addWindowListener(new windowAdopter()
{
public voidwindowClosing(WindowEvent e)
{
}
}); method call is over.
->in the above example, an anonymous inner class which is a child of windowAdopter class is defined. At the same time the object of that anonymous inner class is created and supplied as argument to addWindowListner() method.
->some particular portion of data separately encapsulate sake we create nested class, for separating the some behavior encapsulate in separate nested class. Some portion of class behavior separately encapsulate nested inner class is created.
Comments
Post a Comment