Inner class in java
Which class is create inside the class that is Innerclass.
Types of inner class
- Simple inner class
- Static inner class
- Method local Inner class
- Anonymous inner class
1. Simple inner class
The class "Inner" created inside the class "Outer". So It's Inner class. In that example, if you want access inner class you must access outer class.
Example
class Outer { class Inner { public void show() { System.out.print("show_inner"); } } } public class Main { public static void main(String[] args) { Outer obj = new Outer(); Outer.Inner obj_in = obj.new Inner(); obj_in.show(); } }
Output
show_inner
2. Method local Inner class
The inner class created inside the outer class method. you can create inner class object inside the outer class method.
Example
class Outer { public void method() { class Inner { public void show() { System.out.print("show_inner"); } } Inner o = new Inner(); o.show(); } } public class Main { public static void main(String[] args) { Outer obj = new Outer(); obj.method(); } }
Output
show_inner
3. Static inner class
The inner class is static that means you can access the inner class without create the object. But you should create object of outer class.
Example
class Outer { static class Inner { public void show() { System.out.print("show_inner"); } } } public class Main { public static void main(String[] args) { Outer.Inner obj = new Outer.Inner(); obj.show(); } }
Output
show_inner
4. Anonymous inner class
Anonymous inner class used to define the method , when you are create the object.Learn more about anonymous inner class.
Example
class A { public void show() { System.out.print("Class A"); } } public class Main { public static void main(String[] args) { A obj = new A() { public void show() { System.out.print("Anonymous Class"); } }; obj.show(); } }
Output
show_inner