जब मैं के लिए लूप सामान्य उपयोग करते हैं,
एक सरणी में सभी तत्वों को सामान्य रूप से प्रारंभ हो जाएगा:लूप के लिए वर्धित तत्वों में सरणी तत्व क्यों प्रारंभ नहीं किए गए हैं?
Object[] objs = new Object[10];
for (int i=0;i<objs.length;i++)
objs[i] = new Object();
लेकिन जब मैं एक के लिए-प्रत्येक लूप का उपयोग करें।
सरणी तत्व, अभी भी null
हैं पाश के बाद:
Object[] objs = new Object[10];
for (Object obj : objs)
obj = new Object();
मैंने सोचा था कि obj
एक सरणी में एक विशेष तत्व को संदर्भित करता है,
तो अगर मैं इसे प्रारंभ, सरणी तत्व हो जाएगा साथ ही शुरू किया गया।
ऐसा क्यों नहीं हो रहा है?
धारा 14.14.2 मुझे इसके बारे में कुछ भी नहीं बताता है लेकिन आपका जवाब बहुत स्पष्ट है, धन्यवाद! –
बस जांचने के लिए, क्या अभी भी 'objs [i]' पर विधियों का मतलब 'obj.method()' करके 'obj' के माध्यम से किया जा सकता है? चूंकि 'ओबीजे' 'ओब्जे' को इंगित कर रहा है [i] ' – SmRndGuy
@ एसएमआरएनडीयूयू:" विधियों ... अभी भी किया जा सकता है "से आपका क्या मतलब है? आप अभी भी संदर्भ के माध्यम से विधियों को कॉल कर सकते हैं, लेकिन यह सरणी की सामग्री को नहीं बदलेगा। –