簡體   English   中英

無法弄清楚如何顯示對象數組Java

[英]Cant figure out how display array of objects Java

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
         }
      }
   }
}

它會打印出學生證號。 然后為“ j” for循環下顯示的剩余課程打印一堆垃圾。 我似乎無法弄清楚...任何幫助將不勝感激

您正在指定索引處打印對CollegeCourse對象的引用。

您可以為CollegeCourse編寫toString()方法以打印出您感興趣的屬性,或者可以更改現有行:

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

我敢打賭,“垃圾堆”是該數組或其包含的對象的對象引用。

您的對象需要重寫toString(),並且容器需要遍歷內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM