私は人の名前を設定するために使用されるこのメソッド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
メソッド内に存在するかどうかのチェックを行うべきである知っているが、私は一種の混乱してこれにしています。あなたが見ているように、私は整数を入力することを期待しているので、文字列を入力する場合にエラーが発生しないようにすぐにチェックしてください。
だから私の質問は、同じメソッド内でチェックする必要があり、私のカスタムクラスのメソッドでチェックする必要がありますか?
あなたの 'addPerson'メソッドは非常に奇妙です。なぜ配列ですか?最低年齢をパラメータとするのはなぜですか? 'setPerson'を必要としないように名前をパラメータとして使うのはなぜですか? – Gendarme
@Gendarme _personオブジェクト '_person [_id]'の_idと最低年齢を参照する必要があるからです。なぜなら、ユーザーが入力した年齢が少なくともその年齢であるかどうかを確認する必要があるからです。 'setPerson'については、私はそれを使う必要があるので、正しく行う方法を理解しようとしています。 –
私はチェックがaddPersonになければならないと思います。また、メソッドsetPersonの名前をPersonクラスのsetNameに変更する必要があります。 – RubioRic