Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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-object可以';t存储数据_Java - Fatal编程技术网

Java-object可以';t存储数据

Java-object可以';t存储数据,java,Java,我爸爸和我把范围缩小到对象无法存储数据。另外,我对java还是新手。代码应该在控制台中打印名字、姓氏、成绩和平均成绩。我认为问题出在公共双getCalcGraeAverage()中,但如果有错,请纠正我 import java.util.Scanner; /** * Write a description of class Student here. * * @author XXXX * @version XXXX */ public class Student { Stri

我爸爸和我把范围缩小到对象无法存储数据。另外,我对java还是新手。代码应该在控制台中打印名字、姓氏、成绩和平均成绩。我认为问题出在公共双getCalcGraeAverage()中,但如果有错,请纠正我

import java.util.Scanner;
/**
 * Write a description of class Student here.
 * 
 * @author XXXX
 * @version XXXX
 */
public class Student
{
    String firstName;
    String lastName;
    int gradeLevel;
    double gradeAverage;
    int totalAssignments;
    double totalPoints;

      /**
     * Create a new student with student's name, grade, and average
     */
    public Student(String newFirstName, String newLastName, int newGradeLevel, double newGradeAverage)
    {
        firstName = newFirstName;
        lastName = newLastName;
        gradeLevel = newGradeLevel;
        gradeAverage = newGradeAverage = 0.0;
    }

      /**
     * Return the student's first name. 
     */
    public String getFirstName()
    {
        return firstName;
    }

      /**
     * Return the student's last name. 
     */
    public String getLastName()
    {
        return lastName;
    }

      /**
     * Return the grade level of the student. 
     */
    public int getGradeLevel()
    {
        return gradeLevel;
    }

         /**
     * Calculates grade average. 
     */
    public double getCalcGradeAverage()
    {

       double gradeAverage = totalAssignments / totalPoints;
       return gradeAverage;
    }

    public static void main (String[] args)
    { 
        Student student1 = new Student ("XXXX", "XXXX", 11, 0.0);

        System.out.println("The student's first name is: " + student1.getFirstName());
        System.out.println("The student's last name is: " + student1.getLastName());
        System.out.println("The student's grade level is: " + student1.getGradeLevel());

        System.out.println("Please enter the total assignment points the student has earned: ");

        Scanner input = new Scanner(System.in);
        Double totalAssignments  = input.nextDouble();

        System.out.println("Please enter the number of assignments given: ");

        double totalpoints  = input.nextDouble();

        System.out.println(student1.getFirstName() + " " + student1.getLastName() +  " average grade is" + student1.getCalcGradeAverage());
    }
}

在您的代码中,您是:

  • 创建
    学生1
    对象
  • 系统中读取
    totalAssignments
    totalpoints
  • 调用
    student1.getCalcGradeAverage()
  • 在步骤2和步骤3之间,您必须将
    student
    totalAssignments
    totalpoints
    字段设置为您读取的值,否则它们将保留默认值零。例如

    student1.totalAssignments = totalAssignments;
    student1.totalpoints = totalpoints;
    
    另外,由于
    totalAssignments
    属于
    int
    类型,您可能希望将其理解为:

    int totalAssignments  = input.nextInt();
    

    在编写代码时,为具有类作用域的student类声明变量

    int totalAssignments;
    double totalPoints;
    
    这些类范围变量用于方法:getCalcGradeAverage()中 此方法使用学生的总作业和学生的总分数

    创建新学生时,这些变量等于零,因为不受构造函数中的值的影响

    在写入时的主方法中:

    Double totalAssignments  =
    
    您声明了一个名为“totalAssignments”的新变量,该变量具有方法作用域。当该方法结束时,变量引用将消失,并且无法再访问该变量。 可以考虑变量变量与学生变量不一样:学生。总赋值总是等于零,因为没有影响到他。

    然后假设你能做到:

    student1.totalAssignments  = input.nextInt();
    student1.totalPoints  = input.nextDouble();
    

    你能把你的
    学生
    班级的代码添加到问题中吗?你对
    总作业
    总分数
    做了什么吗?我不确定,也添加了代码。
    gradeAverage=newGradeAverage=0.0
    的意义是什么,我将TotalAssignments和TotalPoints更改为int,但现在我尝试运行它并读取java.lang.arithmetricException:/by零。那么这是否意味着正如你所说的,这些值保持在零值?如果是这样,我该怎么做才能解决这个问题?谢谢。所以你是说我应该更新变量totalAssignments为double,totalpoints为int of student。谢谢。所以你是说我应该更新变量totalAssignments为double,totalpoints为int of student。此外,平均成绩应该是int?根据预期包含的物理值,这些变量应该是int或double。根据名称
    totalAssignments
    判断,它应该是一个整数。我在上面的回答中建议您将它作为一个整数来阅读,因为这就是您的学生课堂上的内容。java.lang.arithmetricException:/by zero在将数字除以零时抛出。计算机无法执行这样的操作