कैसे जावा कार्य में स्थैतिक क्षेत्र

ऐसे समय हो सकते हैं जब किसी विशेष वर्ग के सभी उदाहरणों में साझा किए जाने वाले मूल्यों के लिए उपयोगी हो। स्थैतिक क्षेत्र और स्थैतिक स्थिरांक से संबंधित इस प्रकार के साझाकरण को सक्षम करें कक्षा और वास्तविक वस्तुओं के लिए नहीं।

स्थैतिक संशोधक

आम तौर पर किसी वर्ग में परिभाषित फ़ील्ड और विधियों का उपयोग केवल तभी किया जा सकता है जब उस वर्ग प्रकार की कोई वस्तु बनाई गई हो। उदाहरण के लिए, एक साधारण आइटम वर्ग पर विचार करें जो एक स्टोर में माल का ट्रैक रखता है:

 सार्वजनिक वर्ग

 निजी स्ट्रिंग आइटम नाम;


 सार्वजनिक मद (स्ट्रिंग आइटम नाम)

 {

 this.itemName = itemName;

 }


 सार्वजनिक स्ट्रिंग getItemName ()

 {

 वापसी आइटम नाम;

 }

 } 

GetItemName () विधि का उपयोग करने में सक्षम होने के लिए, हमें पहले एक आइटम ऑब्जेक्ट बनाना होगा, इस मामले में, कैटफ़ूड:

 सार्वजनिक वर्ग StaticExample {


 सार्वजनिक स्थैतिक शून्य main (String [] args) {

 आइटम कैटफ़ूड = नया आइटम ("व्हिस्कस");

 System.out.println (catFood.getItemName ());

 }

 } 

हालाँकि, यदि स्थैतिक संशोधक को किसी क्षेत्र या विधि घोषणा में शामिल किया जाता है, तो कक्षा का कोई उदाहरण नहीं है क्षेत्र या विधि का उपयोग करने के लिए आवश्यक है - वे वर्ग से जुड़े होते हैं न कि किसी व्यक्ति के वस्तु। यदि आप उपरोक्त उदाहरण को देखते हैं, तो आप देखेंगे कि पहले से ही स्थिर संशोधक का उपयोग किया जा रहा है

instagram viewer
मुख्य विधि घोषणा:

 जनता स्थिर शून्य मुख्य (स्ट्रिंग [] args) { 

मुख्य विधि एक है स्थैतिक विधि यह कहलाने से पहले किसी वस्तु के अस्तित्व की आवश्यकता नहीं है। जैसा कि मुख्य () किसी भी जावा एप्लिकेशन के लिए शुरुआती बिंदु है, वास्तव में इसे कॉल करने के लिए पहले से मौजूद कोई वस्तु नहीं है। यदि आप ऐसा महसूस कर सकते हैं कि एक कार्यक्रम है जो लगातार खुद को बुलाता है, तो ऐसा करें:

 सार्वजनिक वर्ग StaticExample {


 सार्वजनिक स्थैतिक शून्य main (String [] args) {


 स्ट्रिंग [] s = {"यादृच्छिक", "स्ट्रिंग"};

 StaticExample.main (s);

 }

 }


बहुत उपयोगी नहीं है, लेकिन ध्यान दें कि StaticExample वर्ग के उदाहरण के बिना मुख्य () विधि को कैसे कहा जा सकता है।

एक स्थैतिक क्षेत्र क्या है?

स्थैतिक क्षेत्रों को वर्ग फ़ील्ड के रूप में भी जाना जाता है। वे बस ऐसे क्षेत्र हैं जिनकी घोषणाओं में स्थिर संशोधक हैं। उदाहरण के लिए, आइए आइटम वर्ग पर वापस जाएं और एक स्थिर फ़ील्ड जोड़ें:

 सार्वजनिक वर्ग


 // स्थिर क्षेत्र अद्वितीय

 निजी स्थिर int uniqueId = 1;


 निजी इंट मद;

 निजी स्ट्रिंग आइटम नाम;


 सार्वजनिक मद (स्ट्रिंग आइटम नाम)

 {

 this.itemName = itemName;

 itemId = uniqueId;

 uniqueId ++;

 }

 }


आइटम आइटमआईडी और आइटमनाम सामान्य गैर-स्थिर क्षेत्र हैं। जब एक आइटम वर्ग का एक उदाहरण बनाया जाता है, तो इन फ़ील्ड में ऐसे मान होंगे जो उस ऑब्जेक्ट के अंदर रखे जाते हैं। यदि कोई अन्य आइटम ऑब्जेक्ट बनाया गया है, तो उसमें भी आइटम संग्रहीत करने के लिए आइटमआईड और आइटमनाम फ़ील्ड होंगे।

हालाँकि, UniqueId static फ़ील्ड एक मान रखती है जो सभी आइटम ऑब्जेक्ट्स पर समान होगा। यदि 100 आइटम ऑब्जेक्ट हैं, तो आइटमआईडी और आइटमनाम फ़ील्ड्स के 100 इंस्टेंस होंगे, लेकिन केवल एक अद्वितीय आईडियल स्थिर फ़ील्ड।

उपरोक्त उदाहरण में, UniqueId का उपयोग प्रत्येक आइटम ऑब्जेक्ट को एक अद्वितीय संख्या देने के लिए किया जाता है। यह करना आसान है यदि बनाया गया प्रत्येक आइटम ऑब्जेक्ट यूनिकआई स्थिर क्षेत्र में वर्तमान मूल्य लेता है और फिर इसे एक से बढ़ाता है। एक स्थिर क्षेत्र के उपयोग का अर्थ है कि प्रत्येक वस्तु को अन्य वस्तुओं के बारे में जानने की आवश्यकता नहीं है एक अलग पहचान. यह तब उपयोगी हो सकता है जब आप उस वस्तु को जानना चाहते हैं जिसमें आइटम ऑब्जेक्ट बनाए गए थे।

स्थिर स्थिरांक क्या है?

स्थैतिक स्थिरांक बिल्कुल स्थिर क्षेत्रों की तरह होते हैं सिवाय इसके कि उनके मूल्यों को नहीं बदला जा सकता है। क्षेत्र घोषणा में, अंतिम तथा स्थिर संशोधक दोनों का उपयोग किया जाता है। उदाहरण के लिए, शायद आइटम वर्ग को आइटम नाम की लंबाई पर प्रतिबंध लगाना चाहिए। हम एक स्थिर स्थिरांक अधिकतमItemNameLength बना सकते हैं:

 सार्वजनिक वर्ग


 निजी स्थिर इंट आईडी = 1;

 सार्वजनिक स्थैतिक अंतिम int maxItemNameLength = 20;


 निजी इंट मद;

 निजी स्ट्रिंग आइटम नाम;


 सार्वजनिक मद (स्ट्रिंग आइटम नाम) 

 {

 यदि (itemName.length ()> maxItemNameLength)

 {

 this.itemName = itemName.substring (0,20);

 }

 अन्य

 {

 this.itemName = itemName;

 }

 आइटम आई डी = आईडी;

 आईडी ++;

 } } 

स्थिर क्षेत्रों के साथ, स्थिर स्थिरांक एक व्यक्तिगत वस्तु के बजाय कक्षा से जुड़े होते हैं:

 सार्वजनिक वर्ग StaticExample {


 सार्वजनिक स्थैतिक शून्य main (String [] args) {


 आइटम कैटफ़ूड = नया आइटम ("व्हिस्कस");

 System.out.println (catFood.getItemName ());

 System.out.println (Item.maxItemNameLength);

 }

 }


MaxItemNameLength स्थिर स्थिरांक के बारे में ध्यान देने योग्य दो महत्वपूर्ण बातें हैं:

  • इसे सार्वजनिक क्षेत्र के रूप में घोषित किया गया है। आम तौर पर आपके द्वारा डिज़ाइन किए गए किसी भी वर्ग में फ़ील्ड को सार्वजनिक करना एक बुरा विचार है, लेकिन इस मामले में, कोई फर्क नहीं पड़ता। स्थिरांक का मान नहीं बदला जा सकता है।
  • स्थिर स्थिरांक का उपयोग वर्ग नाम आइटम से किया जाता है, आइटम वस्तु से नहीं।

स्थैतिक स्थिरांक पूरे जावा एपीआई में देखे जा सकते हैं। उदाहरण के लिए, पूर्णांक आवरण वर्ग दो कि अधिकतम और न्यूनतम मूल्यों एक int स्टोर है डाटा प्रकार हो सकता है:

 System.out.println ("int का अधिकतम मूल्य है:" + पूर्णांक। अधिकतम मूल्य);

 System.out.println ("int का न्यूनतम मान है:" + पूर्णांक। MIN_VALUE);


 आउटपुट:

 इंट के लिए अधिकतम मूल्य है: 2147483647

 इंट का न्यूनतम मान है: -2147483648


instagram story viewer