You are on page 1of 10

CS 8392 

OBJECT
ORIENTED
PROGRAMMING

VA S A N T H A K U M A R V

AP/CSE
INNER CLASSES

In Java, it is also possible to nest classes (a class within a class). The purpose of nested classes is
to group classes that belong together, which makes your code more readable and maintainable.
EXAMPLE
class OuterClass public class MyMainClass
 {
  int x = 10; {
  public static void main(String[] args) 
  class InnerClass {
 {     OuterClass myOuter = new OuterClass();
    int y = 5;     OuterClass.InnerClass myInner = myOuter.new InnerClass();
 }     System.out.println(myInner.y + myOuter.x);
}  
 }

}
P R I VA T E I N N E R C L A S S
If you don't want outside objects to access the inner class, declare the class as private.

class OuterClass public class MyMainClass


 {  {
  int x = 10;   public static void main(String[] args) 
{
  private class InnerClass     OuterClass myOuter = new OuterClass();
 {     OuterClass.InnerClass myInner = myOuter.new InnerClass();
    int y = 5;     System.out.println(myInner.y + myOuter.x);
 }  }
} }
S TAT I C I N N E R C L A S S
An inner class can also be static, which means that you can access it without creating an object of the outer class.

class OuterClass public class MyMainClass {


 {   public static void main(String[] args)
  int x = 10;  {
    OuterClass.InnerClass myInner = new OuterClass.InnerClass();
  static class InnerClass      System.out.println(myInner.y);
{  }
    int y = 5; }
 }
}
ACCESS OUTER CLASS FROM INNER CLASS
class OuterClass  public class MyMainClass 
{
  int x = 10; {
  public static void main(String[] args) 
  class InnerClass  {
{     OuterClass myOuter = new OuterClass();
    public int myInnerMethod()      OuterClass.InnerClass myInner = myOuter.new InnerClass();
{     
      return x; System.out.println(myInner.myInnerMethod());
    }   
 } }
}
}
F I N A L K E Y W O R D -   F I N A L VA R I A B L E
Final variable once assigned a value can never be changed.

class Bike9 public static void main(String args[])
{   {  
 final int speedlimit=90; Bike9 obj=new  Bike9();  
 void run() obj.run();  
{   }  
speedlimit=400;   }

FINAL KEYWORD - FINAL METHOD
If you make any method as final, you cannot override it.

class Honda extends Bike
class Bike {  
{   void run()
final void run() {
{ System.out.println("running safely with 100kmph");
System.out.println("running"); } 
}  
}   public static void main(String args[])
      {  
Honda honda= new Honda();  
honda.run();    
}  }  
FINAL KEYWORD - FINAL CLASS
If you make any class as final, you cannot extend it.

class Honda extends Bike
final class Bike{}    {  
      void run()
{
System.out.println("running safely with 100kmph");

public static void main(String args[])
{  
Honda honda= new Honda();  
honda.run();    
}  }  
THANK YOU

You might also like