क्या एक वैरिएबल 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;
}
}