调用构造函数并从scanner方法为其赋值



我试图制作一个程序,要求用户创建一个人或一组人,并为他们指定姓名和年龄。所以我做了一个构造函数"Try"和一个方法"AskUser"。在AskUser()中,我使用do/while循环,要求用户输入姓名、年龄以及是否喜欢创建另一个人。现在,我如何在每次循环运行时获取输入数据,并将其发送到构造函数以使用它创建新对象?这些新物体将如何命名?

import java.util.Scanner;
public class Try{
    static String name;
    static int age;
    static Scanner a = new Scanner(System.in);
    static Scanner b = new Scanner(System.in);
    static Scanner c = new Scanner(System.in);
    public Try(String name, int age){
        this.name=name;
        this.age= age;
        System.out.println("this is "+name+", and he is "+age+" old.");
    }
    public static void AskUSer(){
        int x=0;
        do {System.out.print("what's the name of the person ?");
            name= a.nextLine();
            System.out.print("how old is he? ");
            age= b.nextInt();
            System.out.print("would u like to creat another person ");
            String yes = c.nextLine();
            if(!(yes.equals("yes"))){x++;}
        } while(x==0);
    }
    public static void main (String[] args){
        AskUSer();
        System.out.print(age+ " "+ name);   
    }
}     

您可以在AskUSer中构造新对象并将其作为返回值返回。所以代码看起来像:

public static YourObject AskUSer() {
    ...
}

除了如何从用户那里阅读之外,

制作一个类是合适的。。类似于:

class Person {
    private String name;
    private int age;
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return this.name;
    }
    public int getAge() {
        return this.age;
    }
}

在进入循环之前你可以使用ArrayList来保存

ArrayList<Person> people = new ArrayList<Person>();

每次你读输入。。实例化Person对象并将其添加到ArrayList

类似于:

 Person pr=new Person(name,age);
 people.add(pr);

最新更新