Java Inner Class In Hindi


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 नहीं बना सकते हैं।

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

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 जरूर करना पड़ेगा।

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. } }
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 कर सकते हैं।

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

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 में।

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

Message from inner class.

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook