Final Class in Java

Final Class in Java: final जावा का एक ऐसा Keyword है, जिसका प्रयोग किसी काम को Finalize करने के लिए किया जाता है। जिस प्रकार से Abstract Classes ऐसी Classes होती हैं, जिन्हें Inherit करना ही पडता है, उसी तरह से कुछ Level की Hierarchy के बाद कुछ ऐसी Classes भी बन जाती हैं, जिन्हें किसी भी हालत में Inherit नहीं किया जाना चाहि, होता है।

जब हमें ऐसी Derive की जाने वाली किसी Class को Inheritance Hierarchy की अन्तिम Class बनाना हो और इसी Class पर Hierarchy का अन्त करना हो, तो इस प्रकार की Class को हमें Final Class के रूप में Derive करना होता है। जिस तरह हम किसी Abstract Class के Object Create नहीं कर सकते हैं उसी तरह से हम किसी Final Class को Inherit या Derive करके नई Class नहीं बना सकते हैं।

इसी तरह से जब हम ये चाहते हैं कि किसी Super Class का कोई Method कभी भी किसी भी Derived Class में Override ना किया जा सके, तो हम उस Method को Current Class की Super Class में Final Define कर देते हैं। किसी Method को Final Define करने के लिए हमें केवल उस Method के Return Type से पहले final Keyword का प्रयोग करना पडता है।

जब हम किसी Method को final Define कर देते हैं और उस Class को Derive करते हैं, तो Derived Class में उस final Define किए गए Method को Override नहीं किया जा सकता है। इस प्रक्रिया को हम निम्नानुसार Code Segment द्वारा समझ सकते हैं:

	// File Name: AbstractClass.java
	
	class Figure
	{
		final double area()
		{
			// Other Statements 
		}
	}
	
	class Rectangle extends Figure
	{
		double area() 		// Could not Override final method
		{
		}
	}

इस Code Segment में Sub Class में Super Class के final Method area() को Override करने की कोशिश की जा रही है, जो कि सम्भव नहीं है। इस Code Segment को Run करने पर Error Generate होगा।

	// File Name: AbstractClass.java
	
	final class Figure
	{
		double area()
		{
			// Other Statements 
		}
	}
	
	class Rectangle extends Figure // Could not Inherit final Class
	{
	}

इस Code Segment में Super Class को Inherit किया जा रहा है, जो कि सम्भव नहीं है। क्योंकि Super Class एक Final Class है। इसलिए इस Code Segment को Run करने पर Error Generate होगा।

जिस तरह से हम किसी Class में Data Member के रूप में विभिन्न प्रकार के Data Type के Variables एक Class में Compose करते हैं, उसी तरह से हम किसी Class में Data Member के रूप में किसी दूसरी Class के Objects को भी Compose कर सकते हैं।

पिछले अध्‍याय तक हमने Applet Class को Derive करके अलग-अलग तरह के Programs Create किए थे। उसी तरह से हम अपनी स्वयं की Classes बना कर उन्हें भी फिर से Inheritance के Concept का प्रयोग करके फिर से बार-बार Use कर सकते हैं।

जावा में जितनी भी Classes हैं, उन्हें Object नाम की एक Class से Inherit किया गया है। इसलिए Object Class जावा की किसी भी अन्‍य Class की Top Level Super Class है। इसलिए हम Object Class के किसी भी Object से किसी भी अन्‍य Class को Refer कर सकते हैं। क्योंकि Array को भी जावा में Classes की तरह ही Implement किया जाता है, इसलिए Object Class के Objects किसी Array को भी Refer कर सकते हैं।

एक Object Class में निम्न Methods होते हैं, जो जावा की सभी अन्‍य Classes में Default रूप से उपलब्ध हो जाते हैं, क्योंकि जावा की सभी अन्‍य Classes Object Class से ही Derived है।

Object clone()

ये Method एक नया Object Create करके Return करता है और Return होने वाला Object उसी Object का Clone होता है, जिसके Reference में इस Method को Call किया जाता है।

boolean equals(Object obj)

ये Method ये Check करता है कि Argument के रूप में Pass किया गया Object व इस Method को Call करने वाला Object दोनों समान Objects हैं या नहीं। यदि दोनों समान Object होते हैं, तो ये Method true Return करता है और यदि दोनों Objects समान नहीं होते हैं तो ये Method false Return करता है।

void finalize()

ये Method किसी Unused Object के Recycle होने से पहले Call होता है।

Class getClass()

ये Method Program के Run Time में किसी Object की Class Return करता है।

int hashCode()

ये Method उस Object के Hash Code को Return करता है, जिसके Reference में इस Method को Call किया जाता है।

void notify()

ये Method Invoke करने वाले किसी Object पर Wait कर रहे किसी Thread के Execution को Resume करने यानी फिर से Execute करने का काम करता है।

void notifyAll()

ये Method Invoke करने वाले किसी Object पर Wait कर रहे सभी Threads के Execution को Resume करने यानी फिर से Execute करने का काम करता है।

String toString()

    ये Method Object को Describe करने वाला एक String Return करता है।

void wait()

void wait(long milliseconds)

void wait(long milliseconds, int nanoseconds)

ये तीनों ही Methods Execution के किसी दूसरे Thread पर Wait करते हैं।

getClass(), notify(), notifyAll() व wait() इन चारों Methods को Final Declare किया गया है। इनके अलावा बाकी के Methods को हम Override कर सकते हैं। toString() Method एक String Return करता है, जो कि उस Object की Description होता है जिसके Reference में इस Method को Call किया गया है। साथ ही जब हम println() Method का प्रयोग करके किसी Object को Output में भेजते हैं, तब ये Method Automatically Call हो जाता है।

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