3

以下是我感到困惑的 4 种方法,这 4 种方法在教师类中。我有一个学生班和教师班。在 Teacher 类中,声明的是ArrayList<Student> studentsas 实例变量。

如何解释我在下面给出的方法中看到的学生,它也用作参数。我对学生searchStudent(在方法中)和Student student(在论点中)感到非常困惑。难道只是为了ArrayList?如何理解一个类将使用类名搜索另一个类的概念?

public Student searchStudent(Student student)
{
    //confuses me
    Student found = null;

    if (this.students.contains(student))
    {
        int index = this.students.indexOf(student);
        if (index != -1)
        {
            found = this.students.get(index);
        }
    }
    return found;
}

public Student searchStudent(int id)
{
    //confuses me
    Student beingSearched = new Student();
    beingSearched.setStudentId(id);
    return this.searchStudent(beingSearched);
}

public boolean addStudent(Student student)
{
    //confuses me
    boolean added = false;
    if (this.searchStudent(student) == null)
    {
        this.students.add(student);
        added = true;
    }
    return added;
}

public boolean addStudent(int id, String name, double grade)
{
    //this is fine as i know boolen and int, String and double//
    Student student = new Student(id, name, grade);
    return this.addStudent(student);
}
4

1 回答 1

5

我建议你通过这个关于定义方法的链接。

  • public Student searchStudent(Student student)

    它是public一种返回类型对象的方法Student,它也接受类型对象Student。它需要接受student参数,因为它会搜索它。当您想要搜索student记录中是否存在某些内容时(在studentArrayList 中),您将使用此方法。

  • public Student searchStudent(int id)

    相同,但它接受的参数是一个int. 在这里,您将student不是通过对象本身搜索 ,而是通过.student

  • public boolean addStudent(Student student)

    这是一种将 a student(类型为Student)添加到studentsArrayList 的方法。

提示:在调试模式下运行您的代码并按照您不理解的每个方法进行操作,您会惊讶于这将如何帮助您更好地理解程序的流程。

于 2013-09-23T06:29:59.607 回答