जावा में एक प्रत्याशित उदाहरण का उपयोग करने के लिए, यहां कोड है:जावा में, एक गणना निरंतर निरंतर के लिए कन्स्ट्रक्टर कब होता है?
enum Commands{
Save("S");
File("F");
private String shortCut;
private Commands(String shortCut){ this.shortCut = shortCut; }
public String getShortCut(){ return shortCut; }
}
मेरे पास निम्न परीक्षण/ड्राइवर कोड है:
public static void main(String args[]){
System.out.println(Commands.Save.getShortCut());
}
सवाल यह है: जावा में, जब एक के लिए निर्माता होता है गणना निरंतर निरंतर? उपर्युक्त उदाहरण में, मैं केवल Save
समेकित निरंतर उपयोग कर रहा हूं। क्या इसका मतलब यह है कि कन्स्ट्रक्टर को केवल Save
बनाने के लिए बुलाया जाता है? या दोनों Save
और File
दोनों को एक साथ बनाए रखा जाएगा?
क्या इसका मतलब यह है कि जब 'क्लासलोडर' कक्षा लोड करता है, तो एनम के निर्माता का आह्वान किया जाता है? या सेव और फाइल जैसे सदस्य तक पहुंचने से कन्स्ट्रक्टर का आह्वान होगा? यदि कोई तर्क कन्स्ट्रक्टर नहीं है तो क्या होता है? –
@ मुहम्मदबाबर एक वर्ग को शुरू किए बिना लोड किया जा सकता है। तो, नहीं, इसका मतलब है कि जब कक्षा शुरू की जाती है, तो प्रत्येक सदस्य का निर्माण होता है। और, जैसा कि मैंने कहा, इससे कोई फ़र्क नहीं पड़ता कि किसी सदस्य का संदर्भ दिया गया है; कक्षा शुरू होने पर यह निर्माण हो जाता है। आपका दूसरा प्रश्न स्पष्ट नहीं है। यदि सदस्य के लिए कोई तर्क प्रदान नहीं किया गया है, तो वहां कोई नो-एर्ग कन्स्ट्रक्टर परिभाषित नहीं होना चाहिए, या enum संकलित नहीं होगा। क्या यही मतलब है तुम्हारा? – erickson
लेकिन enum में हम कभी भी कुछ नया नहीं करते हैं() यानी कोई स्पष्ट प्रारंभिकरण नहीं है! मेरे मामले में enum में केवल एक वैरिएबल i.e * instance * है और कोई तर्क नहीं वाला एक निजी कन्स्ट्रक्टर है। इस कन्स्ट्रक्टर को कब कहा जाता है? –