2013-10-18 35 views
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(); 
    } 
} 

当我们要在各个填写自己的信息对他们的名字,姓氏等,怎样才能使用的假设扫描仪让他们填写这些信息?

回答

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*/); 
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); 
0
Scanner c = new Scanner(System.in); 
Person p = new Person(c.nextLine(), c.nextLine(), c.nextLine(), c.nextLine()); 

但是,这不是一个良好的做法。最好先验证用户输入,然后用这些值创建一个实例

+1

那么为什么要提出这个问题呢? – chrylis