我有一堂课,在那堂课我有:
//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