नहीं। इस संबंध में रचनाकार सामान्य तरीके नहीं हैं। कन्स्ट्रक्टर का पूरा बिंदु कक्षा के एक नए उदाहरण का निर्माण करना है।
तो इसे स्थिर दायरे में भी शामिल किया जा सकता है। बस इसके बारे में सोचें: यदि आपको इसका एक नया उदाहरण बनाने के लिए अपनी कक्षा के मौजूदा उदाहरण की आवश्यकता है, तो आप इसे कभी भी तुरंत चालू नहीं कर पाएंगे।
कुछ स्पष्टीकरण:
स्टेटिक विधि गैर स्थिर तरीकों नहीं फोन नहीं कर सकते हैं कर सकते हैं।
काफी नहीं। आप एक स्थैतिक विधि के अंदर से एक गैरस्टिक विधि को कॉल कर सकते हैं, बस आपको उस वर्ग की विशिष्ट वस्तु पर स्कोप की आवश्यकता है। अर्थात।
p.k();
उपरोक्त आपके कोड नमूने में पूरी तरह से काम करेगा।
कॉल
k();
एक उदाहरण (nonstatic) विधि के अंदर ठीक होगा। और यह
this.k();
गर्भित this
वर्ग की वर्तमान उदाहरण के लिए संदर्भित करता के बराबर होगा। जब भी कंपाइलर एक अयोग्य कॉल को k()
जैसा आवृत्ति विधि में देखता है, तो यह स्वचालित रूप से this.
के साथ इसका दायरा लेगा। हालांकि, चूंकि स्थैतिक विधियां कक्षा के किसी भी उदाहरण से बंधी नहीं हैं, इसलिए आप (और संकलक) एक स्थिर विधि के अंदर this
का संदर्भ नहीं दे सकते हैं। इसलिए आपको आवृत्ति विधि को कॉल करने के लिए कक्षा के एक उदाहरण को स्पष्ट रूप से नामित करने की आवश्यकता है।
स्रोत
2012-05-09 09:49:33
यदि किसी स्थिर विधि से कन्स्ट्रक्टर को कॉल करना असंभव था, तो आप कभी भी किसी ऑब्जेक्ट का निर्माण नहीं कर सके। –