我有一个类,并在该类我有这样的:Java的初始化在构造函数int数组
//some code
private int[] data = new int[3];
//some code
然后在我的构造函数:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
如果我这样做,一切都OK 。默认数据值初始化,但如果我不是这样做:
public Date(){
int[] data = {0,0,0};
}
它说:
Local variable hides a field
为什么?
什么是在构造函数中初始化数组的最佳方式?
感谢
我希望你是知道的变量的作用域的概念?你的变量'data'在'“之后//”某个代码“'具有整个类的范围。而构造函数中的变量'data'在构造函数中有一个作用域。一旦构造函数完成,变量将被销毁。此外,构造函数中的data变量在类中隐藏了相同名称的变量。这证明错误'本地变量隐藏字段' –