Inner class in java



Which class is create inside the class that is Innerclass.






Types of inner class



  1. Simple inner class
  2. Static inner class
  3. Method local Inner class
  4. 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