我必须要对象。 学生和课程(两者都有这种静态等于方法) 我也有我教授写的司机,我被告知不要碰。 我的目标是让学生选修两门课程,以及学生正在学习的课程。
我的教授给了我所有的方法,我应该填写尸体。
我仔细检查过,并且完全按照他想要的方式复制了equals方法。
这是一个家庭作业问题。
我需要填写此equals方法的正文。 我尝试了if(this.id == other.getID())之类的东西,但我一直收到这个错误: 错误:无法从静态上下文引用非静态变量id
我尝试过使用this.getID()代替但无济于事。我认为这可能与静态有关。 (我不允许改变它。)
写这个的正确方法是什么?我不会在下面的代码中包含所有的getter和setter。
public class Student {
private String id;
private String firstName;
private String lastName;
private String major;
private String minor;
private ArrayList<Course> coursesTaken;
private ArrayList<Course> currentSemesterCourses;
private double gpa;
/**
Course constructor
*/
public Student(String id, String firstName, String lastName, String major, String minor, ArrayList<Course> coursesTaken, ArrayList<Course> currentSemesterCourses) {
/*Your code goes here */
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.major = major;
this.minor = minor;
this.coursesTaken = coursesTaken;
this.currentSemesterCourses = currentSemesterCourses;
}
public static boolean Equals(Object obj) {
//Your code goes here
//base it on id firstName, lastName, major, minor and gpa
}
答案 0 :(得分:5)
我认为这可能与静态有关。 (我不允许改变它。)
然后你的任务没有任何意义,也没有办法解决它。
如果您正在编写静态equals(Object)
方法,那么没有Student
。只传入一个对象,它可以是任何类型。 “等于”是一个你问的关于两件事的问题,,你甚至没有两件事要比较,你只有一件事甚至可能不是Student
。
你被要求写的方法就像问“这个对象是否等于?”它与那句话完全没有意义。