gpt4 book ai didi

java - 如何将这些整数传递给下面的方法?

转载 作者:行者123 更新时间:2023-12-01 22:32:26 25 4
gpt4 key购买 nike

我在这里感到困惑。我的目标是制作一个简单的程序,获取用户想要平均的值的数量,将它们存储在一个数组中(同时将它们加在一起),最后给出这些数字的平均值。

我的事情是,我试图理解多个类和方法的概念,因为我是新来的,所以我尝试使用另一个类来完成所有工作,而主类只会从另一个类创建对象,然后运行他们的方法。也许我在问一些不可能的事情。看看我的代码。

这是我的主类(class):

public class Main
{
public static void main(String[] args)
{
System.out.println("Please enter numbers to average together");

OtherClass averages = new OtherClass();
averages.collectNumbers();
averages.AverageNumbers();
}
}

现在我不确定这些参数中是否有任何内容,或者我是否可以使用“averages.AverageNumbers();”而不用“OtherClass”创建另一个对象,称为其他对象?我很确定这是合法的。

这是我在这个项目中的另一个类,名为“OtherClass”

import java.util.Scanner;

public class OtherClass // using this to name obj
{
public void collectNumbers() //name of our method that does things
{
Scanner sc = new Scanner(System.in);

System.out.println("how many integers would you like to average? ");
int givenNum = sc.nextInt();
System.out.println("Alright, I will average " + givenNum + " values. \nPress enter after each:");

int[] numCollect = new int[givenNum];
int sum = 0;
for (int i = 0; i < numCollect.length; i++)
{
numCollect[i] = sc.nextInt();
sum = sum + numCollect[i];
}
System.out.println(sum);


}
public int AverageNumbers(int givenNum, int sum)
{
int average = sum / givenNum;
System.out.println(average);
return average;
}
}

所以当我现在使用 AverageNumbers 方法运行它时,它不起作用。我怀疑我可能传递的整数错误?我已经玩了大约一个小时了,所以我正在寻求帮助。我怎样才能做到这一点?

最佳答案

如果您将 sumgivenNum 声明为 OtherClass 的字段,而不是局部变量,则此方法将起作用。因此,在 collectNumbers 方法之前,写入

private int sum;
private int givenNum;

并删除collectNumbers中这两个变量的声明。因此,例如,而不是

int givenNum = sc.getInt();

你将拥有

givenNum = sc.getInt();

因为变量已经存在。还将 averageNumbers 方法的声明更改为

public int averageNumbers()

因为您不再需要将这两个值传递给此方法。

这是使用类的对象来携带少量数据的典型示例,而不是仅仅使用类作为将方法分组在一起的方式。此类的两个方法与 sumgivenNum 一起使用,因此将它们存储在此类的每个对象中是有意义的。

最后,在您的 averageNumbers 方法中,您有一个整数除法,它会自动向下舍入。你可能想要一个浮点除法,所以你可以写

double average = (double) sum / givenNum;

在除法之前将 sum 转换为 double float ,因此以 float 进行除法,而不是仅使用整数。当然,如果进行此更改,您还需要将此方法的返回类型更改为 double

关于java - 如何将这些整数传递给下面的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27453981/

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