有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您的代码(以及您的问题)有点令人困惑,但据我所知,您想知道是否应该检查setPerson()中的数组中是否存在一个人

    从我从你的代码中收集到的信息来看,你不应该在setPerson()中做这件事,因为那是Person类中的一个方法。Person类不需要知道有关Person对象数组的任何信息

    所以你现在这样做可能是你最好的选择

    关于代码的一些一般提示:

    没有必要创建一个新的Scanner,你可以使用你现有的。所以这个

    Scanner addPerson = new Scanner(System.in); 
    personName = addPerson.next();
    

    变成这样

    personName = scan.next();
    

    我还建议您使用setName()而不是setPerson()作为方法名,当它实际上在做其他事情时,以一种方式命名它是没有意义的