无法弄清楚如何显示对象Java的数组

时间:2014-10-29 02:24:51

标签: java arrays class object

public class CollegeCourse
{

   private String courseID;
   private int creditHours;
   private char grade;

   public String getCourse()
   {
      return courseID;
   }

   public int getCredits()
   {
      return creditHours;
   }

   public char getGrade()
   {
      return grade;
   }

   public void setCourse(String cid)
   {
      courseID=cid;
   }

   public void setCredits(int hours)
   {
      creditHours=hours;
   }
   public void setGrade(char g)
   {
      grade=g;
   }
}


public class Student
{

   private int studentID;
   private CollegeCourse[] classes=new CollegeCourse[5];

   public int getID()
   {
      return studentID;
   }
   public void setStudentID(int s)
   {
      studentID=s;
   }

   public CollegeCourse getCourses(int x)
   {
      CollegeCourse course=classes[x];
      return course;
   }

   public void setObject(CollegeCourse obj,int x)
   {
      classes[x]=obj;
   }
}








import java.util.Scanner;

public class InputGrades
{
   public static void main(String[] args)
   {
      String course;
      int credits;
      char grade;
      Student[] grades=new Student[10];
      Scanner input=new Scanner(System.in);

      for (int x=0;x<1;x++)
      {  
         grades[x]=new Student();
         System.out.println("Enter ID for student #"+(x+1));
         grades[x].setStudentID(input.nextInt());
         for(int y=0;y<5;y++)
         {
            CollegeCourse one=new CollegeCourse();

            input.nextLine();

            System.out.println("Enter course ID for class number "+y); 
            one.setCourse(input.nextLine());

            System.out.println("Enter credits for "+y);
            one.setCredits(input.nextInt());

            input.nextLine();
            System.out.println("Enter a grade for "+y);
            one.setGrade(input.nextLine().charAt(0));

            grades[x].setObject(one, y);
         }
      }

      for (int i=0;i<1;i++)
      {
         for (int j=0;j<5;j++)
         {
            System.out.println("Course: "+grades[i].getCourses(j));
           //Cant figure out how to print this
         }
      }
   }
}

它将打印学生ID号,就是这样。然后它为“j”for循环下显示的剩余课程打印出一堆垃圾。我似乎无法弄明白...任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

您正在指定索引处打印对CollegeCourse对象的引用。

您可以为CollegeCourse编写toString()方法打印出您感兴趣的属性,也可以改变现有的行:

System.out.println("Course: "+grades[i].getCourses(j).getCourse());

答案 1 :(得分:0)

我打赌&#34;一堆垃圾&#34;是数组或其包含的对象的对象引用。

您的对象需要覆盖toString(),容器需要遍历内容。

相关问题