क्या एक वैरिएबल private static varName;
घोषित करना वैरिएबल घोषित करने से अलग है private varName;
?
हां, दोनों अलग हैं। और पहले वाले को class variable
इसलिए बुलाया जाता है क्योंकि यह उसके लिए एकल मूल्य रखता है class
जबकि दूसरे को instance variable
इसलिए बुलाया जाता है क्योंकि यह अलग-अलग मूल्य रखता है instances(Objects)
। पहले एक को केवल एक बार jvm में बनाया जाता है और दूसरे को एक बार प्रति घंटे बनाया जाता है अर्थात यदि आपके पास 10 उदाहरण हैं तो आपके पास private varName;
jvm में 10 भिन्न होंगे ।
क्या चर को घोषित करना static
इसे अन्य विशेष गुण प्रदान करता है?
हां, स्थिर चर सामान्य आवृत्ति चर की तुलना में कुछ अलग गुण प्राप्त करते हैं। मैंने पहले ही कुछ का उल्लेख किया है और चलो कुछ यहाँ देखें: class variables
(उदाहरण के चर जो स्थिर के रूप में घोषित किए जाते हैं) को सीधे वर्ग नाम का उपयोग करके पहुँचा जा सकता है ClassName.varName
। और उस वर्ग की कोई भी वस्तु केवल उसके संबंधित वस्तुओं द्वारा पहुंच चर के विपरीत इसके मूल्य को एक्सेस और संशोधित कर सकती है। क्लास चर का उपयोग स्थैतिक विधियों में किया जा सकता है।
private static variable
जावा में उपयोग क्या है ?
तार्किक रूप से, private static variable
अलग नहीं है public static variable
बल्कि पहले वाला आपको अधिक नियंत्रण देता है। IMO, आप सचमुच की जगह ले सकता public static variable
द्वारा private static variable
की मदद सेpublic static
मनुष्य और सेटर तरीके।
इसका एक व्यापक रूप से उपयोग किया जाने वाला क्षेत्र private static variable
सरल Singleton
पैटर्न के कार्यान्वयन में है जहां आपके पास पूरी दुनिया में उस वर्ग का केवल एक ही उदाहरण होगा। यहां static
पहचानकर्ता महत्वपूर्ण भूमिका निभाता है ताकि बाहरी दुनिया द्वारा एकल उदाहरण सुलभ हो (बेशक सार्वजनिक स्थैतिक पानेवाला विधि भी मुख्य भूमिका निभाती है)।
public class Singleton {
private static Singleton singletonInstance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return Singleton.singletonInstance;
}
}