【发布时间】:2013-01-15 20:59:22
【问题描述】:
我有 3 个课程:Course、CourseEntry 和 Transcript。在成绩单中,我有一个添加课程的功能,如下所示:
public class Transcript {
CourseEntry coursestaken[] = new CourseEntry[6];
public void addCourse(Course course)
{
coursestaken[lastIndexOf(getCoursestaken())] = new CourseEntry(course);
}
(lastIndexOf gives me the empty array index - it's working on)
在我的CourseEntry:
public class CourseEntry {
Course course;
char grade = 'I';
public CourseEntry(Course course)
{
this.course = course;
}
在我的Course:
public class Course {
int courseNumber,credits;
String courseName;
public Course addNewCourse(int courseNumber, int credits, String courseName)
{
this.courseNumber = courseNumber;
this.credits = credits;
this.courseName = courseName;
return this;
}
在我的主要:
Transcript t = new Transcript();
Course course = new Course();
Course matematik = course.addNewCourse(1, 2, "Matematik");
t.addCourse(matematik);
Course turkce = course.addNewCourse(1, 4, "Türkçe");
t.addCourse(turkce);
但如果我循环 coursetaken 数组,它会打印最后插入的所有索引。
我该如何解决?
谢谢
【问题讨论】:
-
Course.addNewCoursemutates/changes/updates 当前对象(并且不会将其“添加”到任何内容中)。相反,删除该方法并使用new Course(应更新构造函数以获取 courseNumber、credits、courseName),然后将 new Course 对象添加到 Transcript。 -
请包括循环代码以及堆栈跟踪
-
哇,读这段代码真的伤了我的脑筋