Inner Class In Java
Java inner class is a class which is defined in another class(outer class) is known as inner class or nested class in java.
Syntax of Inner class or nested class :
class OuterClass_Name
{
-----
-----
-----
class InnerClass_Name
{
-----
-----
-----
}
}
Java inner classes or nested classes can access all the data members and methods of its outer class including private data member and private methods.
There are a great relationship between java inner class and its outer class's instance.
Syntax of Inner class or nested class :
class OuterClass_Name
{
-----
-----
-----
class InnerClass_Name
{
-----
-----
-----
}
}
Java inner classes or nested classes can access all the data members and methods of its outer class including private data member and private methods.
There are a great relationship between java inner class and its outer class's instance.
Inner class is a part of nested class, non-static classes is known as inner class in java.
Types of Nested Class
There are two types of nested class, non-static nested class and static nested class. The non-static nested class is known as inner class in java.
(1) non-static nested class(inner class)
- member inner class
- anonymous inner class
- local inner class
(2) static nested class
- static nested class
Now we will cover all non-static nested class i.e inner class and static nested class in detail. So let's starts
Non-Static Nested Class(inner class)
1) Member Inner Class
In java member inner class is a class which is defined in class but outside of a method is called member inner class.
Java Member Inner Class Example
Java member inner class defined in a class but outside of method of that class.
In this example we will create outer class(MemberOuter) and inner class(MemberInner) and declare a private data member in outer class and access this private data member in inner class because inner class can access all the data members and methods in inner class, including private data member and methods.
In this example we will create outer class(MemberOuter) and inner class(MemberInner) and declare a private data member in outer class and access this private data member in inner class because inner class can access all the data members and methods in inner class, including private data member and methods.
class MemberOuter
{
private int salary = 4000;//private data member of outer class
class MemberInner
{
void get()
{
System.out.println("salary is "+salary);//access in inner class
}
}
public static void main(String args[])
{
MemberOuter mo = new MemberOuter();
MemberOuter.MemberInner mi = mo.new MemberInner();
mi.get();
}
}
output : salary is 4000
Note : (1) In case of java outer and inner class, Here the java compiler creates two .class files the first is MemberOuter.class and MemberOuter$MemberInner.class.
Note : (1) In case of java outer and inner class, Here the java compiler creates two .class files the first is MemberOuter.class and MemberOuter$MemberInner.class.
(2) If you want to instantiate inner class, you must have to create the instance of outer class and instance of inner class is created inside the instance of outer class.
2) Anonymous Inner Class
In java anonymous inner class is a class that have no name is called anonymous inner class. This class can be instantiated only once. It is usually declared inside a method or block.
Anonymous inner class can be created by two ways in java
- Using class(abstract or concrete)
- Using interface
Java Anonymous Inner Class Example
abstract class AIExample
{
abstract void show();
}
class Test
{
public static void main(String args[])
{
AIExample a = new AIExample()
{
void show()
{
System.out.println("Method of anonymous class");
}
};
a.show();
}
}
output : Method of anonymous class
The above example is performing anonymous by using abstract class.
{
abstract void show();
}
class Test
{
public static void main(String args[])
{
AIExample a = new AIExample()
{
void show()
{
System.out.println("Method of anonymous class");
}
};
a.show();
}
}
output : Method of anonymous class
The above example is performing anonymous by using abstract class.
Java Anonymous Inner Class Example - Using Interface
This is simple example of anonymous inner class using interface.
interface AnonymousExmple
{
void show();
}
class Test
{
public static void main(String args[])
{
AnonymousExmple ae = new AnonymousExmple()
{
public void show()
{
System.out.println("hello java ");
}
};
ae.show();
}
}
output : hello java
interface AnonymousExmple
{
void show();
}
class Test
{
public static void main(String args[])
{
AnonymousExmple ae = new AnonymousExmple()
{
public void show()
{
System.out.println("hello java ");
}
};
ae.show();
}
}
output : hello java
3) Java Local Inner Class
In java local inner class is a class which is created inside a method is called local inner class in java. If you want to invokes the method of local inner class, you must instantiate this class inside the method.
In java local inner class is a class which is created inside a method is called local inner class in java. If you want to invokes the method of local inner class, you must instantiate this class inside the method.
Java Local Inner Class Example
class LICExample
{
private int a = 40;
void show()
{
class LICExample1
{
void get()
{
System.out.println("value is "+a);
}
}
LICExample1 l = new LICExample1();
l.get();
}
public static void main(String args[])
{
LICExample ll = new LICExample();
ll.show();
}
}
output : value is 40
{
private int a = 40;
void show()
{
class LICExample1
{
void get()
{
System.out.println("value is "+a);
}
}
LICExample1 l = new LICExample1();
l.get();
}
public static void main(String args[])
{
LICExample ll = new LICExample();
ll.show();
}
}
output : value is 40
Static Nested Class
1) Static Nested ClassIn java static nested class is a class which is defined in a class with static keyword.
static nested class cannot access non-static data member and methods of outer class. It can access only static data member of outer class including private.
Java Static Nested Class Example
class Simple
{
static int a = 700;
static class SimpleInner
{
void show()
{
System.out.println("value is"+a);
}
}
public static void main(String args[])
{
Simple.SimpleInner s = new Simple.SimpleInner();
s.show();
}
}
{
static int a = 700;
static class SimpleInner
{
void show()
{
System.out.println("value is"+a);
}
}
public static void main(String args[])
{
Simple.SimpleInner s = new Simple.SimpleInner();
s.show();
}
}
0 comments:
Post a Comment