java如何正确使用对象
我有一个方法addPerson
(在主界面上),用于设置一个人的名字
private static Person[] addPerson(Person _person[], int _minAge, int _id){
int personAge;
String personName;
Scanner scan = new Scanner(System.in);
System.out.println("What's his age?");
personAge = scan.nextInt();
if(personAge >= _minAge){
if(!_person[_id].getPerson().equals("")){
System.out.println("Person " + _person[_id].getPerson() + " already exists.");
}else{
System.out.println("Enter the name of the person");
Scanner addPerson = new Scanner(System.in);
personName = addPerson.next();
_person[_id].setPerson(personName);
}
}else{
System.out.println("Person is not old enough");
}
return _person;
}
这里是我的自定义类中的方法setPerson
,用于设置人名
public void setPerson(String name){
System.out.println("Person added");
personName = name;
}
我知道我应该检查这个人是否已经存在于我的setPerson
方法中,但我对此有点困惑。正如你看到的,我希望用户输入一个整数,所以我想我应该立即检查它,以防他输入字符串时出错
所以我的问题是,哪些应该在同一个方法中检查,哪些应该在自定义类的方法中检查
# 1 楼答案
您的代码(以及您的问题)有点令人困惑,但据我所知,您想知道是否应该检查
setPerson()
中的数组中是否存在一个人从我从你的代码中收集到的信息来看,你不应该在
setPerson()
中做这件事,因为那是Person
类中的一个方法。Person
类不需要知道有关Person
对象数组的任何信息所以你现在这样做可能是你最好的选择
关于代码的一些一般提示:
没有必要创建一个新的
Scanner
,你可以使用你现有的。所以这个变成这样
我还建议您使用
setName()
而不是setPerson()
作为方法名,当它实际上在做其他事情时,以一种方式命名它是没有意义的