• iconJava Online Training In Andhra Pradesh and Telangana
  • icon9010519704

Opening Hours :7AM to 9PM

Inner Class:


If one class with in another class is known as inner class or nested class
Syntax:
class ClassName   // outer class
{
    class ClassName  // inner class
    {
        //methods and fields 
        ...
        ...
    }
    //methods and fields 
    ...
    ...
}

The main aim of the inner class is to provide more security for the data
Example
class A
{
    int x;
    class B
    {
        int y;
        float z;
        void f1()
        {
            Statement 1;
            Statement 2;
            ..
            ..
        }
        ...
        ...
    }
}
MSK TechnologiesTrainings





Accessing inner class properties:
1.outer class property can be access with in the inner class directly.
2.inner class properties can be accesses inside the outer class methods with object reference
3.properties of non-static innerclass can be accessed by creating a special object in the external class(Main class) as shown below

Outerclass.innerclass objref=new outerclass().new innerclass();

4.whenever we want to access static inner class property within external class then we must create a spacial object as shown below

Outerclass.innerclass objref=new outerclass.innerclass()



Write a java program to illustrate innerclass
class A
{
    int x=10;
    void f1()
    {
        System.out.println("this if f1 method");
    }
    void f2()
    {
        B ob=new B();
        ob.f4();
    }
    class B
    {
        int y=30;
        void f3()
        {
            System.out.println("x="+x);
            f1();
        }
        void f4()
        {
            System.out.println("this is  f4 method");
        }
    
    };
    static class C
    {
        void f5()
        {
            System.out.println("this is f5 method");
        }
    }
};
public class Rain {

    public static void main(String[] args)  {
        
        A oa=new A();
        oa.f2();
        A.B ob=new A().new B();// non static inner class object
        ob.f3();
        A.C oc=new A.C(); // static inner class object
        oc.f5();
        
    }
}

Output:
this is f4 method
x=10
this if f1 method
this is f5 method
Note:
Outer class or external class cont be declare either static or final class.