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

Personと の両方を認識するメソッドが必要であり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 に答える