java - How do I initialize an object of a class? -
मेरा कोड ऐसा कुछ है:
सार्वजनिक वर्ग फू {सार्वजनिक int a; बार [] बार = नया बार [10]; ए = बार [0] .baz; } सार्वजनिक वर्ग बार {सार्वजनिक int b; सार्वजनिक बार () {// मैं इस निर्माता के साथ दूर करने की कोशिश की, लेकिन वह नहीं था // तय कुछ भी बी = 0; } सार्वजनिक एएनए बाज़ () {// do somthing}}
और मुझे एक त्रुटि संदेश मिलता है:
थ्रेड "Foo" जावा में अपवाद .lang.NullPointerException
फ़ू में जो भी लाइन मैं क्लास बार के किसी फ़ंक्शन या मान को कॉल करने का प्रयास करता हूं। मैं बाक [] को रिक्त होने से कैसे रोकूं?
संपादित करें: कुछ नगण्य के बाद, मैं अंत में इसे तय कर लिया, धन्यवाद सबको! हालांकि, मैं चीजों को ठीक करने के लिए निर्माता को कॉल नहीं कर सका; मुझे एक और फ़ंक्शन बनाना पड़ता था और मेन से उस फ़ंक्शन को कॉल करना था (मेरे मामले में, क्लास फू वास्तव में कक्षा मुख्य है, अगर वह वास्तव में मायने रखता है)। मेरा अंतिम परिणाम:
सार्वजनिक वर्ग फ़ू {public int a; बार [] बार = नया बार [10]; सार्वजनिक फ़ू () {// इस निर्माता को किसी कारण के लिए नहीं बुलाया गया था ... मैंने सिस्टम.आउट.प्रिंटएलएन का उपयोग करके इसे चेक किया था ... कोई भी संदेश प्रिंट ऑनस्क्रीन (int a = 0; a & lt; bar । लम्बाई; ए ++) बार [ए] = नया बार (); } सार्वजनिक स्थिर शून्य initializeFoo () {के लिए (int एक = 0; एक & lt; bar.length; a ++) बार [a] = नया बार (); } सार्वजनिक स्थिर शून्य Foo () {initializeFoo (); ए = बार [0] .baz; }}
कोई भी उस के साथ मेरी मदद करना चाहता है, या मुझे एक और प्रश्न बनाना है? :)
आपको यह बार [] बार = नया लिखकर संदर्भ के लिए स्मृति आवंटन है बार [10];
लेकिन कौन सरणी तत्वों के लिए स्मृति आवंटित करेगा? संदर्भ प्रकारों के असल सरणियों को रिक्त संदर्भों के साथ आरंभ किया जाता है।
आपको सरणी तत्वों को स्मृति आवंटित करने की भी आवश्यकता है:
के लिए (int i = 0; i & lt; bar.length ; ++ i) बार [i] = नया बार ();
Comments
Post a Comment