Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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 我的代码正确吗?我可以做些什么来修复这些错误?_Java - Fatal编程技术网

Java 我的代码正确吗?我可以做些什么来修复这些错误?

Java 我的代码正确吗?我可以做些什么来修复这些错误?,java,Java,我创建了一个名为“grade”的类。我的说明说这个类需要3个方法和2个构造函数。我要使用的三种方法是 “公共无效设置编号(整数编号)” “public int getNumber()” “公共字符串getLetter()” 第一个构造函数不应接受任何参数,并将number实例变量的初始值设置为零。第二个应该接受一个整数值,并使用它设置number实例变量的初始值。在getLetter()方法中,我有一个警告,上面写着“分配给自身”。我在末尾还有一个错误,上面写着“缺少返回语句”。我可以做什么

我创建了一个名为“grade”的类。我的说明说这个类需要3个方法和2个构造函数。我要使用的三种方法是

  • “公共无效设置编号(整数编号)”
  • “public int getNumber()”
  • “公共字符串getLetter()”
第一个构造函数不应接受任何参数,并将number实例变量的初始值设置为零。第二个应该接受一个整数值,并使用它设置number实例变量的初始值。在
getLetter()
方法中,我有一个警告,上面写着“分配给自身”。我在末尾还有一个错误,上面写着“缺少返回语句”。我可以做什么更正?如何修复这些错误?下面是我的代码

public class Grade {

private int number;
private String letterGrade;

public void setNumber(int number) {
this.number = number;

}

public int getNumber() { 
return number; 

}
public String getLetter() {
    this.letterGrade = letterGrade;

}
}

您共享的代码没有任何构造函数,但您提到需要使用2个构造函数(默认构造函数和参数化构造函数)。您可以参考下面的代码来执行问题中所解释的操作

public class Grade {

    private int number;
    private String letterGrade;

    //2 constructors as mentioned in question
    Grade() {
        this.number = 0;
        this.letterGrade = ""; //initialize to default value you decide upon
    }
    Grade(int n) {
        this.number = n;
        this.letterGrade = "sample"; //initialize to default value you decide upon
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public int getNumber() {
        return number;
    }
    public String getLetter() {
        //this.letterGrade = letterGrade; // "assignment to itself" error thrown because you are not passing
                                          // letterGrade as an argument to set the value to data-member
        return this.letterGrade;          // "missing return statement" error thrown as you missed return statement.
    }

    /* this is correct if choose to do so
    public String getLetter(String letterGrade ) {
        this.letterGrade = letterGrade ;
        return this.letterGrade;
    }
    */
}

首先,这些方法都不是构造函数,构造函数没有返回类型规范也有相同的类名。其次,
getLetter()
的问题是,在它的上下文中,没有
letterGrade
,也没有
letterGrade
变量作为参数传递,因此编译器检查
Grade
类的上下文并确定有一个具有该名称的变量,因此它假设行
this.letterGrade=letterGrade正在分配自身的自身值,即自我分配。这是你们班的正确代码

   public class Grade {

    private int number;
    private String letterGrade;

    public Grade()
    {
      number = 0; //an int is 0 by default, this is not neccessary.
    }
    public void setNumber(int number) {
        this.number = number;
    }

    public int getNumber() { 
         return number; 

    }
    public String getLetter() {
        return letterGrade;

    }
}

getLetter
需要返回数据。