我有一个班级,在那个班级我有这个:
//some code
private int[] data = new int[3];
//some code
Run Code Online (Sandbox Code Playgroud)
然后在我的构造函数中:
public Date(){
data[0] = 0;
data[1] = 0;
data[2] = 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,一切都很好.默认数据值已初始化但如果我改为:
public Date(){
int[] data = {0,0,0};
}
Run Code Online (Sandbox Code Playgroud)
它说:
Local variable hides a field
Run Code Online (Sandbox Code Playgroud)
为什么?
什么是在构造函数中初始化数组的最佳方法?
谢谢
Bhe*_*ung 167
private int[] data = new int[3];
Run Code Online (Sandbox Code Playgroud)
这已经将数组元素初始化为0.您不需要在构造函数中重复这一点.
在你的构造函数中它应该是:
data = new int[]{0, 0, 0};
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
public class Data {
private int[] data;
public Data() {
data = new int[]{0, 0, 0};
}
}
Run Code Online (Sandbox Code Playgroud)
哪个data
在构造函数中初始化,或者:
public class Data {
private int[] data = new int[]{0, 0, 0};
public Data() {
// data already initialised
}
}
Run Code Online (Sandbox Code Playgroud)
data
在执行构造函数中的代码之前初始化.
归档时间: |
|
查看次数: |
447644 次 |
最近记录: |