Java Double未在方法之间传递
我设计了一个小程序,其中我有三个考试成绩,我使用成绩类来计算这三个成绩的平均值。此外,我会提示输入考试编号(1、2或3),它会返回。但是,对于平均考试分数和所选考试分数,我始终得到0.0作为输出Java Double未在方法之间传递,java,Java,我设计了一个小程序,其中我有三个考试成绩,我使用成绩类来计算这三个成绩的平均值。此外,我会提示输入考试编号(1、2或3),它会返回。但是,对于平均考试分数和所选考试分数,我始终得到0.0作为输出 package GradesClass; import java.util.Scanner; public class GradesDriver { public static void main(String[] args) { Grades school = new G
package GradesClass;
import java.util.Scanner;
public class GradesDriver {
public static void main(String[] args) {
Grades school = new Grades(90.9,87.9,99.9);
Scanner in = new Scanner(System.in);
System.out.println("Enter desired test number: ");
int testnumber = in.nextInt();
System.out.println(school);
System.out.println("Exam score: " + school.getGrades(testnumber));
}
}
package GradesClass;
public class Grades {
private double num1, num2, num3;
private int testnumber;
private double average;
public Grades(double num1, double num2, double num3) {
num1 = 0;
num2 = 0;
num3 = 0;
}
public void setGrades(double scorenumber, int testnumber) {
if (testnumber == 1) {
num1 = scorenumber;
} else if (testnumber == 2) {
num2 = scorenumber;
} else {
num3 = scorenumber;
}
}
public double getGrades(int testnumber) {
if (testnumber == 1) {
return(num1);
} else if (testnumber == 2) {
return(num2);
} else {
return(num3);
}
}
public double average(double num1, double num2, double num3) {
average = ((num1+num2+num3)/3.0);
return(average);
}
public String toString() {
return("Average: " + average);
}
}
在等级构造函数中,您将成员变量设置为零,而不是参数中提供的值。将构造函数更改为
public Grades(double num1, double num2, double num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
在等级构造函数中,您将成员变量设置为零,而不是参数中提供的值。将构造函数更改为
public Grades(double num1, double num2, double num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
我建议您在类中添加更多的print语句,以查看值的输入和输出。这就是所谓的调试,也是学习编程的重要部分。编程不仅仅是编写代码。它是理解代码在做什么的能力。不要将该工作委托给其他人。但最有可能的问题是,我们将所有0分配给该构造函数中的值。忽略传递给它的所有参数!0+0+0加起来不多。我建议您在类中添加更多的print语句,以查看值的输入和输出。这就是所谓的调试,也是学习编程的重要部分。编程不仅仅是编写代码。它是理解代码在做什么的能力。不要将该工作委托给其他人。但最有可能的问题是,我们将所有0分配给该构造函数中的值。忽略传递给它的所有参数!0+0+0加起来不多。这是什么意思。是指类的当前实例,构造函数创建的对象。您总是可以从类的方法内部引用对象来访问成员,大多数情况下您不需要也可以只写成员的名称,但在本例中,成员和参数具有相同的名称,因此您必须使用this.num1来将其与参数num1分开。这是怎么回事。是指类的当前实例,构造函数创建的对象。您总是可以从类的方法内部引用对象来访问成员,大多数情况下您不需要也可以只写成员的名称,但在本例中,成员和参数具有相同的名称,因此您必须使用this.num1将其与参数num1分开