मुख्य अंतर - जावा में स्थिर बनाम अंतिम
प्रत्येक प्रोग्रामिंग भाषा का एक विशिष्ट सिंटैक्स होता है। प्रोग्राम लिखते समय प्रोग्रामर को इन सिंटैक्स का पालन करना चाहिए। प्रोग्रामिंग भाषाओं के कीवर्ड के कार्यों के अनुसार विशिष्ट अर्थ होते हैं। वे प्रोग्रामिंग भाषा द्वारा प्रदान किए जाते हैं और उपयोगकर्ता द्वारा परिभाषित चर, विधियों, कक्षाओं आदि के लिए उपयोग नहीं किए जा सकते हैं। स्थिर और अंतिम जावा में दो कीवर्ड हैं। यह लेख जावा में स्थिर और अंतिम के बीच अंतर पर चर्चा करता है। जावा में स्टैटिक और फ़ाइनल के बीच महत्वपूर्ण अंतर यह है कि स्टैटिक का उपयोग क्लास मेंबर को परिभाषित करने के लिए किया जाता है, जिसे क्लास के किसी भी ऑब्जेक्ट से स्वतंत्र रूप से इस्तेमाल किया जा सकता है, जबकि फ़ाइनल का उपयोग एक स्थिर वैरिएबल या एक मेथड को घोषित करने के लिए किया जाता है जिसे ओवरराइड नहीं किया जा सकता है। विरासत में नहीं मिल सकता।
जावा में स्टैटिक क्या है?
एक वर्ग में डेटा सदस्य (विशेषताएँ) और विधियाँ होती हैं। विधियों को कॉल करने के लिए, उस विशिष्ट वर्ग की वस्तु होनी चाहिए। जब किसी विधि को स्थैतिक घोषित किया जाता है, तो उस विधि को कॉल करने के लिए ऑब्जेक्ट बनाने की आवश्यकता नहीं होती है। कक्षा के नाम का उपयोग करके विधि को बुलाया जा सकता है। नीचे दिए गए कार्यक्रम का संदर्भ लें।
चित्र 01: स्थिर चर और स्थिर विधि के साथ जावा प्रोग्राम
उपरोक्त कार्यक्रम के अनुसार, कक्षा ए में संख्या चर और प्रदर्शन विधि शामिल है। दोनों स्थिर सदस्य हैं। इसलिए, संख्या चर और प्रदर्शन विधि तक पहुँचने के लिए एक वस्तु बनाना आवश्यक नहीं है। प्रोग्रामर नंबर प्रिंट करने और मेथड डिस्प्ले को कॉल करने के लिए सीधे क्लास का नाम लिख सकता है। तो, किसी वस्तु को तत्काल करने की कोई आवश्यकता नहीं है।यदि संख्या चर और प्रदर्शन विधि गैर-स्थिर हैं, तो ए प्रकार की वस्तु होनी चाहिए।
चित्र 02: स्थिर ब्लॉक का उपयोग
उपरोक्त कार्यक्रम में स्थिर ब्लॉक और मुख्य विधि शामिल है। क्लास लोड होने पर स्टेटिक ब्लॉक को कॉल किया जाता है। इसलिए, स्टेटिक ब्लॉक में स्टेटमेंट मुख्य ब्लॉक में स्टेटमेंट से पहले निष्पादित होता है। यदि कई स्थिर ब्लॉक हैं, तो वे क्रम में निष्पादित होंगे।
जावा में फाइनल क्या है?
कार्यक्रम में विभिन्न प्रकार के चर हो सकते हैं। यदि कोई चर है जैसे int x=1; बाद में कार्यक्रम में, उस चर मान को किसी अन्य मान में बदला जा सकता है। एक वैरिएबल जिसे अंतिम घोषित किया गया है और एक मान के साथ आरंभ किया गया है, उसे बाद में प्रोग्राम में नहीं बदला जा सकता है।
चित्र 03: अंतिम चर और वंशानुक्रम के साथ कार्यक्रम
उपरोक्त कार्यक्रम के अनुसार x एक अंतिम चर है। इसे 5 मान दिया गया है। इसे किसी अन्य मान में नहीं बदला जा सकता क्योंकि इसे अंतिम घोषित किया गया है। जावा ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) का समर्थन करता है। OOP का एक स्तंभ बहुरूपता है। एक प्रकार का बहुरूपता अधिभावी है। कक्षा ए में प्रदर्शन विधि है। क्लास बी क्लास ए का विस्तार करता है और इसकी अपनी डिस्प्ले विधि है। टाइप बी का ऑब्जेक्ट बनाते समय और डिस्प्ले मेथड को कॉल करने पर आउटपुट के रूप में "बी" प्रिंट होगा। क्लास ए की डिस्प्ले मेथड क्लास बी की डिस्प्ले मेथड द्वारा ओवरराइड की जाती है।
अगर प्रोग्रामर किसी मेथड को ओवरराइड करने से बचना चाहता है तो वह उस मेथड के लिए फाइनल कीवर्ड का इस्तेमाल कर सकता है। यदि कक्षा ए में प्रदर्शन विधि अंतिम है, तो बी में प्रदर्शन विधि एक त्रुटि देगी क्योंकि उस विधि को ओवरराइड नहीं किया जा सकता है।
चित्र 04: विधि में अंतिम कीवर्ड
ओओपी का एक और स्तंभ विरासत है। यह पहले से मौजूद कोड का पुन: उपयोग करने में मदद करता है। नया वर्ग मौजूदा वर्ग से विस्तारित हो सकता है और मौजूदा वर्ग के डेटा सदस्यों और विधियों का उपयोग कर सकता है। यदि किसी वर्ग को विरासत में प्राप्त करना बंद करना आवश्यक है, तो प्रोग्रामर 'अंतिम' कीवर्ड का उपयोग कर सकता है। नीचे दिए गए कार्यक्रम का संदर्भ लें।
चित्र 05: कक्षा में अंतिम कीवर्ड
उपरोक्त कार्यक्रम के अनुसार कक्षा ए को अंतिम घोषित किया जाता है। जब कक्षा बी ए का विस्तार करता है, तो यह एक त्रुटि देता है क्योंकि कक्षा ए को अंतिम घोषित किया जाता है। इसे अन्य वर्गों द्वारा विरासत में प्राप्त नहीं किया जा सकता है।
जावा में स्टैटिक और फाइनल में क्या समानता है?
जावा में स्थिर और अंतिम दोनों कीवर्ड हैं।
जावा में स्टैटिक और फाइनल में क्या अंतर है?
जावा में स्थिर बनाम अंतिम |
|
स्टेटिक कीवर्ड दर्शाता है कि एक सदस्य चर, या विधि, उस वर्ग की तात्कालिकता की आवश्यकता के बिना पहुँचा जा सकता है जिससे वह संबंधित है। | अंतिम कीवर्ड एक ऐसी इकाई को दर्शाता है जिसे केवल एक बार असाइन किया जा सकता है। |
चर | |
स्थिर चर को पुन: प्रारंभ किया जा सकता है। | अंतिम चर को पुन: प्रारंभ नहीं किया जा सकता है। |
तरीके | |
अन्य स्थिर तरीकों से बुलाया जा सकता है और केवल कक्षा के स्थिर सदस्यों तक ही पहुंच सकता है। | अंतिम विधियों को ओवरराइड नहीं किया जा सकता है। |
कक्षा | |
स्थिर वर्ग वस्तु नहीं बनाई जा सकती। इसमें केवल स्थिर सदस्य होते हैं। | अंतिम वर्ग अन्य वर्गों को विरासत में नहीं मिल सकता है। |
ब्लॉक | |
स्थिर कीवर्ड का उपयोग ब्लॉक में किया जा सकता है। | अंतिम कीवर्ड का उपयोग ब्लॉक के साथ नहीं किया जाता है। |
सारांश - जावा में स्थिर बनाम अंतिम
इस लेख में जावा में दो खोजशब्दों पर चर्चा की गई है जैसे स्थिर और अंतिम। जावा में स्टैटिक और फ़ाइनल के बीच का अंतर यह है कि स्टैटिक का उपयोग क्लास मेंबर को परिभाषित करने के लिए किया जाता है जिसे क्लास के किसी भी ऑब्जेक्ट से स्वतंत्र रूप से इस्तेमाल किया जा सकता है जबकि फ़ाइनल का उपयोग एक स्थिर वैरिएबल या एक ऐसी विधि को घोषित करने के लिए किया जाता है जिसे ओवरराइड नहीं किया जा सकता है या एक क्लास जो नहीं कर सकती है विरासत में मिले।