2013-10-18 47 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