Java Inner Class In Hindi

📔 : Java 🔗

Java programming language में variables और methods की तरह ही आप classes में inner class को भी define कर सकते हैं। जिसे Inner class कहते हैं।


Inner Class के किसी भी तरह के data members को access करने के लिए आपको outer class का object बनाना ही पड़ेगा। और outer class के object instance के through ही inner class का object बनेगा। आप directly inner class का object नहीं बना सकते हैं।

Java Inner Class Example

File : MainClass.java

CopyFullscreenClose FullscreenRun
class OuterClass {
  // define inner class.
  class InnerClass {
    void message() {
      System.out.println("Message from inner class.");
    }
  }
}

public class MainClass {
  public static void main(String[] args) {
    OuterClass outerObj = new OuterClass();
    
    // now create inner class Object.
    OuterClass.InnerClass innerObj = outerObj.new InnerClass();
    innerObj.message();
  }
}
Output
javac MainClass.java
java MainClass
Message from inner class.

Java Static Inner Class

जिस तरह से हम किसी class में normal static data members define करते हैं ठीक उसी तरह से किसी inner class को भी आप as a static inner class define कर सकते हैं।


चूंकि किसी भी static member को object के through access नहीं करते हैं इसलिए static inner class के किसी भी तरह member के member को access करने के लिए outer class का object तो नहीं बनाना पड़ेगा पर हाँ , Outer class का use जरूर करना पड़ेगा।

Java Static Inner Class Example

File : MainClass.java

CopyFullscreenClose FullscreenRun
class OuterClass {
  // define static inner class.
  static class InnerClass {
    // non static method.
    void nonStaticMethod() {
      System.out.println("Non static method of InnerClass.");
    }
    
    // static method.
    static void staticMethod() {
      System.out.println("Static method of InnerClass.");
    }
  }
}

class MainClass {
  public static void main(String[] args) {
    // now access inner class from Outer class.
    OuterClass.InnerClass innerObj = new OuterClass.InnerClass();
    innerObj.nonStaticMethod(); // access non static method.
    innerObj.staticMethod(); // access static method.
  }
}
Output
javac MainClass.java
java MainClass
Non static method of InnerClass.
Static method of InnerClass.

Java Private Inner Class

अगर आप चाहते हैं हैं कि inner class का object outer class के अलावा कही बाहर access न किया जा सके तो regular class की तरह ही आप need के according inner class को private और protected define कर सकते हैं।

File : MainClass.java

CopyFullscreenClose FullscreenRun
class OuterClass {
  // just define a private inner class.
  private class InnerClass {}
}

class MainClass {
  public static void main(String[] args) {
    OuterClass outerObj = new OuterClass();
    // now try to create inner class Object.
    OuterClass.InnerClass innerObj = outerObj.new InnerClass();
  }
}
Output
javac MainClass.java

MainClass.java:10: error: OuterClass.InnerClass has private access in OuterClass
    OuterClass.InnerClass innerObj = outerObj.new InnerClass();
              ^
MainClass.java:10: error: OuterClass.InnerClass has private access in OuterClass
    OuterClass.InnerClass innerObj = outerObj.new InnerClass();
                                                  ^
2 errors

हालाँकि private inner class को आप उसी class में access कर सकते हैं जिस class में उसे define किया गया है , means Outer class में।

File : OuterClass.java

CopyFullscreenClose FullscreenRun
public class OuterClass {
  // just define a private inner class.
  private class InnerClass {
    void message() {
      System.out.println("Message from inner class.");
    }
  }
  
  public static void main(String[] args) {
    OuterClass outerObj = new OuterClass();
    // now you can create inner class Object.
    OuterClass.InnerClass innerObj = outerObj.new InnerClass();
    innerObj.message();
  }
}
Output
javac OuterClass.java
java OuterClass
Message from inner class.

Related Topics :

Rahul Kumar

Rahul Kumar

Hi ! I'm Rahul Kumar Rajput founder of learnhindituts.com. I'm a software developer having more than 4 years of experience. I love to talk about programming as well as writing technical tutorials and blogs that can help to others. I'm here to help you navigate the coding cosmos and turn your ideas into reality, keep coding, keep learning :)

Get connected with me. :) LinkedIn Twitter Instagram Facebook

b2eprogrammers