在其他方法内部从其他类调用方法

时间:2020-04-18 23:41:32

标签: java arrays

我在任何地方都找不到解决方案,所以在这里:

一个学校项目说要使用isEqual(Student)方法,我必须在其中使用hasSameName(Person)。 我创建了两个类,StudentPerson,其中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.*******************
    }

任何帮助将不胜感激。

1 个答案:

答案 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,您可以简单地从子类中调用父方法。因此,假设hasSameNameisEqual的签名已固定,则可以通过以下方式实现isEqual

// Student.java

public boolean isEqual(Student student) {
    return this.hasSameName(student) && this.studentID == student.getStudentID();
}