gpt4 book ai didi

java - 我使用的方法、构造函数和 getter 正确吗?

转载 作者:行者123 更新时间:2023-11-30 03:10:17 25 4
gpt4 key购买 nike

我有一个计算 ArrayList 平均值的类,我想知道它的设置是否正确?我对 Java 还很陌生,所以我最终想要的只是将 ArrayList 作为参数,并使用以下方法在 main 方法中返回它:

StatCalc stats = new StatCalc(someArrayList);
System.out.printf("Mean of someArrayList is: %.3f\n", stats.getAverage());

这是 StatCalc 类

public class StatCalc {
//declare inst variables & method
private double average = 0;
private double meanCalc(ArrayList<Double> myList) {
double sum = 0;
if (!myList.isEmpty()) {
for (Double element : myList) {
sum += element;
}
}
return sum / myList.size();
}
//Constructor
public StatCalc(ArrayList<Double> myList) {
double average = meanCalc(myList);
this.average = average;

}

//getter
public double getAverage() {
return average;
}
}

我只是想知道这就是Java中“应该”完成的方式,就像之前我在构造函数中使用meanCalc方法一样,该方法有效,但我认为这是不好的做法?

最佳答案

在你的构造函数中,你声明 average作为构造函数范围。

只需删除 double来自:double average = meanCalc(myList);

这将分配您的实例字段,而不是构造函数内具有相同名称的变量。

反过来,getAverage()方法将返回实例字段 average分配后,而不是其未分配的默认值,即 0.0

简而言之:

//Constructor
public StatCalc(ArrayList<Double> myList) {
average = meanCalc(myList);
}

最后说明

如果您要提供的功能仅依赖于给定的参数,您可能可以不创建类的实例。

您可以简单地让一个静态方法返回 double并采取 List<Double>作为参数。

关于java - 我使用的方法、构造函数和 getter 正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758929/

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