使用扫描仪调用构造函数

时间:2013-10-18 01:52:38

标签: java

如何使用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();
    }
}

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

3 个答案:

答案 0 :(得分:1)

您需要使用Scanner

读取该数据

e.g。

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*/);

答案 1 :(得分:0)

您需要有一些知道PersonScanner的方法,并且它将具有读取适当值并设置字段的逻辑。我的建议是在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);

答案 2 :(得分:0)

Scanner c = new Scanner(System.in);
Person p = new Person(c.nextLine(), c.nextLine(), c.nextLine(), c.nextLine());

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