0

如何使用 Scanner 调用主类中另一个单独类中的构造函数。

假设我们有

public Person(String personFirstname, String personLastName, String personAddress, String personUsername)
{
    firstName = personFirstName;
    lastName = personLastName;
    address = personAddress;
    username = personUsername;
}

假设我们有

public class PersonExample
{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Person dave = new Person();
    }
}

当我们希望个人填写他们自己的姓名、姓氏等信息时,我们如何使用扫描仪让他们填写这些信息?

4

3 回答 3

1

您需要使用Scanner

例如

Scanner scanner = new Scanner(System.in);

System.out.println("Your name?");
String name = scanner.nextLine();

// ... repeat for all fields ...

Person person = new Person(/*all the fields you just read*/);
于 2013-10-18T01:54:48.947 回答
0

您需要有一些同时知道Personand的方法Scanner,并且它会有您的逻辑来读取适当的值并设置字段。我的建议是有一个这样的static方法Person

public class Person {
    public static Person createFromScanner(final Scanner scanner) {
        String firstName = scanner.next();
        // ...
        return new Person(firstName, lastName, address, username);
    }
}

然后你可以像这样从其他地方(比如main)调用它:

Scanner scan = new Scanner(System.in);
Person dave = Person.createFromScanner(scan);
于 2013-10-18T01:55:14.110 回答
0
Scanner c = new Scanner(System.in);
Person p = new Person(c.nextLine(), c.nextLine(), c.nextLine(), c.nextLine());

但这不是一个好习惯。最好先验证用户输入,然后使用这些值创建一个实例

于 2013-10-18T01:57:39.930 回答