This question already has answers here:
How do I print my Java object without getting “SomeType@2f92e0f4”?
                                
                                    (9个答案)
                                
                        
                                3年前关闭。
            
                    
我正在创建一个数组以打印测试成绩及其分界线。但是,每次我的输出是这样的:

Grade@9c7e21
Grade@6194f8
Grade@258f60
Grade@418c57
Grade@1937e44
Grade@193a307
Grade@1a6cfa1
Grade@5b7a7
Grade@950d76
Grade@dceda6
Grade@102f6c0
Grade@681b92


我应该更改什么,以便输出为测试成绩和截止值?

这是我的2个课程:

public class Grade
{
  private String grades;
  private int cutoff;
  //-----------------------------------------------------------------
  // Stores the possible grades and their numeric lowest value.
  //-----------------------------------------------------------------
  public Grade (String average, int lowvalue)
  {
    grades = average;
    cutoff = lowvalue;
  }
  //-----------------------------------------------------------------
  // Returns the possible grades and their lowest numeric value.
  //-----------------------------------------------------------------
  public String getGrades (String grades, int cutoff)
  {
    return grades + "\t" + cutoff;
  }
}


驱动类别:

public class GradeRange
{
//-----------------------------------------------------------------
// Stores the possible grades and their numeric lowest value,
// then prints them out.
//-----------------------------------------------------------------
  public static void main (String[] args)
  {
    Grade[] score = new Grade[12];
    score[0] = new Grade ("A", 95);
    score[1] = new Grade ("A-", 90);
    score[2] = new Grade ("B+", 87);
    score[3] = new Grade ("B", 83);
    score[4] = new Grade ("B-", 80);
    score[5] = new Grade ("C+", 77);
    score[6] = new Grade ("C", 73);
    score[7] = new Grade ("C-", 70);
    score[8] = new Grade ("D+", 67);
    score[9] = new Grade ("D", 63);
    score[10] = new Grade ("D-", 60);
    score[11] = new Grade ("F", 0);
    for (int index = 0; index < score.length; index++)
      System.out.println (score[index]);
  }
}

最佳答案

toString方法添加到Grade类

public String toString() {
   return grades + "\t" + cutoff;
}


并在for循环中使用它

for (int index = 0; index < score.length; index++)
    System.out.println (score[index].toString());

10-06 14:47