Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Double未在方法之间传递_Java - Fatal编程技术网

Java Double未在方法之间传递

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

我设计了一个小程序,其中我有三个考试成绩,我使用成绩类来计算这三个成绩的平均值。此外,我会提示输入考试编号(1、2或3),它会返回。但是,对于平均考试分数和所选考试分数,我始终得到0.0作为输出

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分开