我在任何地方都找不到解决方案,所以在这里:
一个学校项目说要使用isEqual(Student)
方法,我必须在其中使用hasSameName(Person)
。
我创建了两个类,Student
和Person
,其中boolean hasSameName(Person persons[])
比较数组中的名称,如果找到相同的名称,则返回true
,如果没有相同的名称,则返回false
人。
public class Person{
private String name,surname,address,email,phoneNumber;
public Person(String name,String surname,String address,String email,String phoneNumber) {
this.name = name;
this.surname = surname;
this.address = address;
this.email = email;
this.phoneNumber = phoneNumber;
}
...
...
...
public boolean hasSameName(Person persons[]) {
boolean flag = false;
for(int i = 0; i<persons.length; i++) {
for (int j = i+1; j< persons.length; j++) {
if((persons[i].getName() == persons[j].getName() && (i!=j))){
flag = true;
}
}
}
if(flag == true)
return true;
else
return false;
}
该项目说boolean isEqual(Student name, Student id)
应该比较名称和id值,但是必须使用hasSameName(Person)
方法。
这是Student
类:
public class Student extends Person {
private int studentID,semester;
public Student(String name,String surname,String address,String email,String phoneNumber,int studentID,int semester) {
super(name,surname,address,email,phoneNumber);
this.studentID = studentID;
this.semester = semester;
}
.
.
.
.
public boolean isEqual(Student name,Student id) {
//****************i am stuck here. I don't know how to make it work.*******************
}
任何帮助将不胜感激。
答案 0 :(得分:1)
一个学校项目说要使用isEqual(Student)方法,我必须在其中使用hasSameName(Person)。
我认为hasSameName
方法应该已经这样实现:
// Person.java
public boolean hasSameName(Person person) {
if (null == person || null == person.getName())
return false;
return person.getName().equals(this.getName());
}
然后,作为Student extends Person
,您可以简单地从子类中调用父方法。因此,假设hasSameName
和isEqual
的签名已固定,则可以通过以下方式实现isEqual
:
// Student.java
public boolean isEqual(Student student) {
return this.hasSameName(student) && this.studentID == student.getStudentID();
}