gpt4 book ai didi

java - 带有数组的实例变量

转载 作者:行者123 更新时间:2023-12-01 13:10:33 24 4
gpt4 key购买 nike

我正在尝试创建一个数组实例变量。我有很多方法可以生成有关数组的某些统计信息。我想知道是否有人可以向我解释我是否以正确的方式处理这个问题。我对 Java 相当陌生,所以非常感谢任何指点。当我运行该程序时,我收到错误,例如 Null。我现在不想修复这些错误,我只是想知道我是否以正确的方式解决这个问题。

我的数据类:

   import java.util.Arrays;
public class Stat {

private double data[];

public Stat()
{
data = new double[1];
data[0]= 0.0;
}

public Stat(double[] d)
{
d = new double[d.length];

}

public double[] getData()
{
return data;

}

public void setData(double[] d)
{

}

主要方法:

  double[] data = {1,2,2,3,4,5};
Stat stat1 = new Stat(data);

System.out.println(stat1.getData());

System.out.println("stat1 data = " + stat1.toString());
System.out.println("stat1 min = " + stat1.min());
System.out.println("stat1 max = " + stat1.max());
System.out.println("stat1 average = " + stat1.average());
System.out.println("stat1 mode = " + stat1.mode());
System.out.println("stat1 data = " + stat1.toString());

最佳答案

这个构造函数实际上并没有做任何事情。您在 d 中传入一个数组,然后在说 new 时将 d 分配给另一个数组,另外,d 仅存在于堆栈中,直到方法返回。每当使用此构造函数时,data 都不会被初始化,这就是错误的来源。

更改:

public Stat(double[] d)
{
d = new double[d.length];
}

像这样:

public Stat(double[] d)
{
data = d;
}
<小时/>

这是我在计算机上运行的内容:

public class Stat {

private double data[];

public Stat()
{
data = new double[1];
data[0]= 0.0;
}

public Stat(double[] d)
{
data = d;

}

public double[] getData()
{
return data;

}

}

public class JavaTest {

public static void main(String[] args) {

double[] data = {1,2,2,3,4,5};
Stat stat1 = new Stat(data);

System.out.println(stat1.getData()[0]); //outputs 1.0

}
}

关于java - 带有数组的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22901412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com