我有一个名为"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
",只更改它们应该返回的内容,第二个应该返回person的姓名和姓氏,第三个应该返回person的年龄。
你能帮我吗?
发布于 2018-12-13 22:08:30
它只是对persons和check getName()
的迭代。但是对于教育推荐者,你总是需要检查人名可以是null
,否则searchPerson函数会用null
参数调用(NullPointerException对于java开发人员来说是非常糟糕的错误,你的老师可以检查你的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;
}
发布于 2018-12-13 21:59:48
我们的想法是迭代数组并比较参数name
,如下所示
public Person searchPerson(String name) {
for (Person p: persons) {
if (p.getName().equals(name)) return p;
}
return null; // person could not be found
}
https://stackoverflow.com/questions/53763442
复制相似问题