我有一个名为“ Person
”的类,其中的属性是:姓名,姓氏和年龄。我已经创建了它,它很简单,它仅由setter和getter组成。但是然后我有了另一个叫做“ PersonDatabase
”的类,对我来说,这有点复杂。我将在这里显示:
public class PersonDatabase {
private Person[] persons;
private int personCount;
public PersonDatabase(int defaultPersonsCapacity) {
persons = new Person[defaultPersonsCapacity];
personCount = 0;
}
public void addPerson(String name, String surname, int age) {
if (personCount == persons.length) {
System.out.println("Unable to add Person.");
return;
}
persons[personCount] = new Person(name, surname, age);
personCount++;
System.out.println("Person added.");
}
public int getPersonCount() {
return personCount;
}
到目前为止,这是我所拥有的,但是我必须在其中创建另外三种方法,一种仅获取名称,另一种获取名称和姓氏,另一种仅获取一个人的年龄。
我知道如何从根本上“开始”他们。第一个是:
public Person searchPerson (String name) {
}
第二个和第三个应该相同。它们应具有相同的“数据类型”(类Person)和名称“ searchPerson
”,仅更改应返回的内容,第二个应返回人员的姓名和姓氏,第三个应返回个人的姓名和姓氏。人的年龄。
您能帮我吗?
答案 0 :(得分:1)
想法是遍历数组并比较参数name
之类的东西
public Person searchPerson(String name) {
for (Person p: persons) {
if (p.getName().equals(name)) return p;
}
return null; // person could not be found
}
答案 1 :(得分:1)
这只是人员迭代并检查getName()
。但是对于教育建议,您始终需要检查人名可以为null
,否则将使用null
参数调用searchPerson函数(对于Java开发人员,NullPointerException是非常糟糕的错误,您的老师可以检查您的api) 。
public Person searchPerson (String name) {
for (Person person: persons) {
if (name != null && name.equals( person.getName())) {
return person;
}
}
System.out.println("We can not found Person with name " + name);
return null;
}