मेरे पास एक वर्ग है और उस कक्षा में मेरे पास यह है:
//some code
private int[] data = new int[3];
//some code
फिर मेरे निर्माता में:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
अगर मैं ऐसा करता हूं, तो सब कुछ ठीक है। डिफ़ॉल्ट डेटा मान आरंभ किए जाते हैं, लेकिन यदि मैं इसके बजाय ऐसा करता हूं:
public Date(){
int[] data = {0,0,0};
}
इसे कहते हैं:
Local variable hides a field
क्यों?
कंस्ट्रक्टर के अंदर एक सरणी को इनिशियलाइज़ करने का सबसे अच्छा तरीका क्या है?
dataबाद"//some code"पूरी कक्षा का एक क्षेत्र है। जबकिdataकंस्ट्रक्टर में वेरिएबल कंस्ट्रक्टर के अंदर एक स्कोप है। और एक बार जब कंस्ट्रक्टर किया जाता है, तो चर नष्ट हो जाएगा। औरdataकंस्ट्रक्टर के अंदर का वेरिएबल भी वैरिएबल को क्लास में इसी नाम से छिपाता है। यह त्रुटि का औचित्य सिद्ध करता हैLocal variable hides a field