有个小问题,有个程序是读入一系列整数到数组data中,然后加减输出结果,比如,输入的是1,2,3,4,5,6,7,8,那么就计算1-2+3-4+5-6+7-8,这样的结果输出,程序写出如下,可有一点疑问,如果将add函数中的三处data.length换成DATA_LENGTH,为什么会报错呢
public class DataSet
{
private double[] data;
private int datasize;
public DataSet()
{
final int DATA_LENGTH=100;
data=new double[DATA_LENGTH];
datasize=0;
}
public void add(double x)
{
if(datasize>=data.length)//这里的data.length能换成DATA_LENGTH吗 {
double[] newData = new double[2*data.length];//这里的data.length能换成DATA_LENGTH吗
System.arraycopy(data,0,newData,0,data.length);//这里的data.length能换成DATA_LENGTH吗 data=newData;
}
data[datasize]=x;
datasize++;
}
public double alteringSum()
{
double sum = 0;
for(int i = 0;i<=datasize;i++)
{
if(i%2==0)
{
sum=sum+data[i];
}
else if(i%2==1)
{
sum=sum-data[i];
}
}
return sum;
}
}
public class DataSet
{
private double[] data;
private int datasize;
public DataSet()
{
final int DATA_LENGTH=100;
data=new double[DATA_LENGTH];
datasize=0;
}
public void add(double x)
{
if(datasize>=data.length)//这里的data.length能换成DATA_LENGTH吗 {
double[] newData = new double[2*data.length];//这里的data.length能换成DATA_LENGTH吗
System.arraycopy(data,0,newData,0,data.length);//这里的data.length能换成DATA_LENGTH吗 data=newData;
}
data[datasize]=x;
datasize++;
}
public double alteringSum()
{
double sum = 0;
for(int i = 0;i<=datasize;i++)
{
if(i%2==0)
{
sum=sum+data[i];
}
else if(i%2==1)
{
sum=sum-data[i];
}
}
return sum;
}
}
函数里。