nested classes in java code example

Example 1: Nested classes in java

// example on method local inner class in java.
class Outer
{
   // outer class instance method
   void display()
   {
      int num = 96;
      // method-local inner class
      class MethodLocalInner
      {
         public void show()
         {
            System.out.println("in method local inner class " + num);
         }
      } // end of inner class
      // access method local inner class
      MethodLocalInner objInner = new MethodLocalInner();
      objInner.show();
   }
   public static void main(String[] args)
   {
      Outer objOuter = new Outer();
      objOuter.display();
   }
}

Example 2: Nested classes in java

// Anonymous inner class in java
abstract class Anonymous
{
   public abstract void display();
}
public class AnonymousInnerExample
{
   public static void main(String[] args)
   {
      Anonymous obj = new Anonymous() {
         public void display() {
            System.out.println("anonymous inner class example");
         }
      };
      obj.display();
   }
}

Example 3: Nested classes in java

// how to access private members of a class.
class OuterClass
{
   // outer class private variable
   private int number = 56;
   // inner class
   public class InnerClass
   {
      public int showNumber()
      {
         System.out.println("showNumber() method of inner class.");
         return number;
      }
   }
}
public class AccessPrivateMembers
{
   public static void main(String[] args)
   {
      OuterClass objOuter = new OuterClass();
      OuterClass.InnerClass objInner = objOuter.new InnerClass();
      System.out.println(objInner.showNumber());
   }
}

Example 4: Nested classes in java

// example on inner class in java
class OuterDemo
{
   int num;
   // inner class
   private class InnerDemo
   {
      public void display()
      {
         System.out.println("inner class");
      }
   }
   // access inner class from method within
   void printInner()
   {
      InnerDemo objInner = new InnerDemo();
      objInner.display();
   }
}
public class InnerClassExample
{
   public static void main(String[] args)
   {
      OuterDemo objOuter = new OuterDemo();
      objOuter.printInner();
   }
}

Example 5: Nested classes in java

// example on static nested classes java
import java.util.*;
public class OuterClass
{
   static class NestedClass
   {
      public void display() 
      {
         System.out.println("static nested class example");
      }
   }
   public static void main(String[] args) 
   {
      OuterClass.NestedClass nested = new OuterClass.NestedClass();	 
      nested.display();
   }
}

Example 6: Nested classes in java

// anonymous inner class as method argument.
interface HelloWorld
{
   String print();
}
public class AnonymousInnerDemo
{
   // method accepts object of interface HelloWorld
   public void display(HelloWorld m)
   {
      System.out.println(m.print() + "example of anonymous inner class as method argument.");
   }
   public static void main(String[] args)
   {
      AnonymousInnerDemo obj = new AnonymousInnerDemo();
      // pass an anonymous inner class as an argument
      obj.display(new HelloWorld() {
         public String print() {
            return "Hi! ";
         }
      });
   }
}

Tags:

Misc Example