我对Java还是很陌生,我Java课程的这个实验问题已经困扰了一段时间,我认为一旦我的代码达到这一点,一切都很好:
public class Student {
// TODO: Build Student class with private fields and methods listed above
// private variables
private String name;
private double gpa;
// TODO: Define two private member fields
// default constructor
public Student() {
name = "Louie";
gpa = 1.0;
}
public Student(String name, double gpa) {
this.name = name;
this.gpa = gpa;
}
public void getName() {
// TODO: Assign parameter to instance field
return name;
}
public void setName(String name) {
// TODO: Assign parameter to instance field
this.name = name;
}
public double getGPA() {
// TODO: Assign parameter to instance field
return gpa;
}
public void setGPA(double gpa) {
// TODO: Assign parameter to instance field
this.gpa = gpa;
}
// TODO: Add three more methods
public static void main(String[] args) {
Student student = new Student();
System.out.println(student.getName() + "/" + student.getGPA());
student.setName("Felix");
student.setGPA(3.7);
System.out.println(student.getName() + "/" + student.getGPA());
}
}
但是后来我得到了这些错误:
Student.java:21:错误:不兼容类型:意外返回值返回名称;^Student.java:44:错误:此处不允许'void'类型System. out.println(学生.getName() "/" 学生.getGPA()); ^ Student.java:48:错误:此处不允许'void'类型System.out.println(学生.getName() "/" 学生.getGPA());
我试着用谷歌搜索错误,看看其他人是如何解决这些问题的,但是我会摆脱一个错误,遇到一个完全不同的错误。我不确定如何解决“意外返回值”错误。但是至于“这里不允许使用的void类型”,我尝试从“公共静态void main”中删除“void”,因为我看到推荐给遇到相同问题的其他人,但这会导致其他错误。
代码的预期结果应该类似于:Louie/1.0 Felix/3.7
我很困惑为什么主类有问题,因为这部分代码在我开始实验室时已经填写了。
在第21行,您返回的name
类型为String
,但您的getName()
函数的签名是public void getName()
。要将此更改void
修复为String
:public String getName()
。