user31069
0
Q:

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());
   }
}
1
// 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();
   }
}
1
// 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();
   }
}
1
// 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! ";
         }
      });
   }
}
1
// example on how to override method of a class.
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();
   }
}
1
// 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();
   }
}
1
In Java, it is possible to define a class within another class, such 
classes are known as nested classes. They enable you to logically group 
classes that are only used in one place, thus this increases the use of 
encapsulation, and creates more readable and maintainable code.
0

New to Communities?

Join the community