Inner Class in Java

Inner Class in Java: जिस तरह से हम विभिन्न प्रकार के Control Statements की Nesting कर सकते हैं उसी तरह से हम किसी एक Class में दूसरी Class को भी Nest कर सकते हैं। Nested Class केवल उस Class तक ही उपलब्ध होता है, जिसमें इसे Create किया जाता है।

किसी Nested Class के Objects को हम उस Class से बाहर Create नहीं कर सकते हैं, जिसमें ये Class Nested हैं। यानी यदि एक Class B को Class A में Define किया गया है, तो Class B के बारे में Class A को पता होता है, लेकिन Class B के बारे में Class A के अलावा Program के किसी हिस्से को पता नहीं होता है।

एक Nested Class को किसी भी तरीके से उसकी Outer Class के अलावा कहीं भी Access नहीं किया जा सकता है। एक Nested Class उसकी Outer Class के किसी भी Member को Access कर सकता है लेकिन Outer Class Inner Class के किसी भी Member को Access नहीं कर सकता है।

Nested Class भी दो तरह की हो सकती है। पहले प्रकार की Class static Class होती है। इस प्रकार की Class में static Modifier का प्रयोग किया गया होता है। चूंकि ये एक static Class होती है। इसलिए यह अपने Outer Class के Members को एक Object के Reference द्वारा Access कर सकता है। यानी एक static Inner Class अपनी Outer Class के Members को बिना अपने Object के Access नहीं कर सकता है। सामान्‍यतया इस प्रकार की Class को Use नहीं किया जाता है।

दूसरी प्रकार की Class एक Inner Class होती है। ये एक Non-Static Nested Class होता है और अपने Outer Class के सभी Members को Directly Access कर सकता है। निम्न Program द्वारा हम इस Class के Concept को समझ सकते हैं जहां Outer एक Outer Class है और Inner एक Inner Class है।

// Program
	class Outer
	{
		int outerVariable = 100;
		void Test()
		{
			Inner inner = new Inner();
			inner.display();
		}
		class Inner
		{
			void display()
			{
				System.out.println(“Display : outerVariable = “ + outerVariable);
			}
		}
	}
	
	class InnerClassDemonstractoin
	{
		public static void main(String args[])
		{
			Outer outer = new Outer();
			outer.Test();
		}
	}
	
// Output
	Display : outerVariable = 100

इस Program में Inner Class को Outer Class के अन्दर Nested किया गया है। इसलिए Inner Class Directly outerVariable को Access कर सकता है। Inner Class में एक Instance Method display() Define किया गया है। ये Method outerVariable के मान को Display करने का काम करता है। main() Method Outer Class का एक Object Create करता है और इसके Test() Method को Call करता है। ये Method Inner Class का एक Object Create करता है और display() Method को Call करता है।

ये बात ध्‍यान देने वाली है कि Inner Class को केवल Outer Class में ही Use किया जा सकता है। Outer Class के Scope से बाहर यदि इस Class का Instance Create करना चाहें, तो हम ऐसा नहीं कर सकते हैं। Compiler हमें ऐसा नहीं करने देता है।

एक Inner Class अपनी Outer Class के सभी Members को Directly Access कर सकता है। लेकिन एक Outer Class अपनी Inner Class के किसी भी Member को Directly Access नहीं कर सकता। Inner Class के Members को केवल Inner Class में ही Access किया जा सकता है। यदि हम एक Outer Class में Inner Class को Use करने की कोशिश करते हैं, तो जावा Compiler हमें ऐसा नहीं करने देता है।

Java Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Java Programming Language in Hindi | Page: 682 | Format: PDF

BUY NOW GET DEMO REVIEWS