gpt4 book ai didi

java - 如何将数组传递给构造函数并在类中使用它?

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

这是我的主要方法,我正在尝试重新编码,因为我在学校多次失败。我想从我的主方法中获取一个带有循环中的用户输入的数组,并将其传递给我的“TestScoresTwo.java”类中的构造函数。然后我想获取该数组并使用它对值求和并在类中的方法中查找平均值,然后返回总和。

import java.math.*;
import java.text.DecimalFormat;
import java.io.*;


public class labBookFortyTwo
{
public static void main(String[] args)
{


Scanner myInput = new Scanner(System.in);

System.out.println("Please enter the amount of grades there are ");

int size = myInput.nextInt();

double grade = 0;

double[] myArray = new double[size];

for(int count = 0; count < myArray.length; count++)
{
System.out.println("enter grade ");

grade = myInput.nextDouble();

myArray[count] = grade;

System.out.println("grade is " + myArray[count] );

}

TestScoresTwo myScore = new TestScoresTwo(myArray, size);

double avg = myScore.avgGrade();

System.out.println("avg is" + avg);


}

}

这是我的 TestScoresTwo.java 类。

public class TestScoresTwo
{

int size = 0;

double[] tScore = new double[size];

double sum = 0;



public TestScoresTwo(double[] scores ,int sizE)
{

double[] tScore = scores;

size = sizE;

}




public double avgGrade()
{


for(int count = 0; count < tScore.length ; count++)
{
sum = tScore[count] + sum;

}


double avg = sum / size;

return avg;

}

}

编译时我的输出是:“请输入有多少等级”3“输入年级”11“等级是 11.0”50“等级为 50.0”70“等级为 70.0”“平均”为 0.0”“按任意键继续...”

由于某种原因,在我的类 TestScoresTwo.java 中,进入了 for 循环实例,我不确定为什么。它们是两个单独的文件,我想不出要包含的任何其他信息。感谢您提供的任何帮助。

最佳答案

你的问题;位于 TestScoresTwo 类中:

public TestScoresTwo(double[] scores ,int sizE)
{
double[] tScore = scores;
size = sizE;
}

tScore 对于构造函数来说是本地的。因此,您将传递的变量分配给局部变量,一旦到达构造函数末尾,该变量就会丢失。

因此,当您调用 avgGrade() 来计算平均值时,用于计算平均值的数组为空。

替换为:

public class TestScoresTwo
{
int size = 0;
double[] tScore; // no need to create it here, it's already created and filled in outside
double sum = 0;

public TestScoresTwo(double[] scores ,int sizE)
{
this.tScore = scores; // "this." added for clarity
this.size = sizE; // "this." added for clarity
}

关于java - 如何将数组传递给构造函数并在类中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892965/

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