Java toString()方法问题

Java toString()方法问题,java,Java,我一直在做这个任务这里的代码是: public class Student { private String fname; private String lname; private String studentId; private double gpa; public Student(String studentFname,String studentLname,String stuId,double studentGpa) { fname = studentFna

我一直在做这个任务这里的代码是:

public class Student
{
 private String fname;
 private String lname;
 private String studentId;
 private double gpa;

 public Student(String studentFname,String studentLname,String stuId,double studentGpa)
 {
  fname     = studentFname;
  lname     = studentLname;
  studentId = stuId;
  gpa       = studentGpa;
 }

 public double getGpa()
 {
  return gpa;
 }

 public String getStudentId()
 {
  return studentId;
 }

 public String getName()
 {
  return lname + ", " + fname;
 }
 public void setGpa(double gpaReplacement)
 {
  if (gpaReplacement >= 0.0 && gpaReplacement <= 4.0)
   gpa = gpaReplacement;
  else
   System.out.println("Invalid GPA! Please try again.");
  System.exit(0);
 }
}
公共班级学生
{
私有字符串fname;
私有字符串名称;
私人字符串学生ID;
私人双gpa;
公立学生(String studentFname、String studentLname、String stuId、double studentGpa)
{
fname=学生fname;
lname=学生名称;
studentId=stuId;
gpa=学生gpa;
}
公共双getGpa()
{
返回gpa;
}
公共字符串getStudentId()
{
返回学生ID;
}
公共字符串getName()
{
返回lname+“,”+fname;
}
公共无效设置GPA(双GPA置换)
{

如果(gpaReplacement>=0.0&&gpaReplacement看看你的getName方法。你可以对toString使用相同的想法(实际上是getName本身)。你可能不知道的一件事是\n意味着换行。所以“foo\nbar”是foo,然后是换行,然后是bar。

只要添加该方法即可

public String toString() {
    // TODO: write code according requirements.
}
如果你的实际问题更多的是你不知道怎么做,那么你的问题应该更具体。例如,你不知道如何在
字符串中插入换行符吗?好的,你可以使用
\n

    return String.format(
        "Name: %s, %s\nID number: %d\nGPA: %f", fname, lname, studentId, gpa);


也就是说,
System#exit()
调用非常剧烈。最终用户真的需要为一个简单的输入错误重新启动整个应用程序吗?

实际上它是无论如何都会退出的。@Matthew:你怎么知道的?因为
系统.exit
在条件之外。@Matthew:我讨厌无括号
,否则
块。你应该向你的教授指出它是使用多行到字符串的错误做法
public String toString() {
    String output = "Name: " + lname + ", " + fname + "\n" +
                  "ID number: " + studentId + "\n" +
                  "GPA: " + gpa + "\n";
    return output;
}
public String toString() {
    String output = "Name: " + lname + ", " + fname + "\n" +
                  "ID number: " + studentId + "\n" +
                  "GPA: " + gpa + "\n";
    return output;
}
@Override
public String toString() {
    return "Name: " + getName() + "\n" +
            "ID Number: " + studentId + "\n" +
            "GPA: " + gpa;
}