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循环下显示的剩余课程打印出一堆垃圾。我似乎无法弄明白...任何帮助将不胜感激
答案 0 :(得分:1)
您正在指定索引处打印对CollegeCourse对象的引用。
您可以为CollegeCourse编写toString()
方法打印出您感兴趣的属性,也可以改变现有的行:
System.out.println("Course: "+grades[i].getCourses(j).getCourse());
答案 1 :(得分:0)
我打赌&#34;一堆垃圾&#34;是数组或其包含的对象的对象引用。
您的对象需要覆盖toString(),容器需要遍历内容。