我试图制作一个程序,要求用户创建一个人或一组人,并为他们指定姓名和年龄。所以我做了一个构造函数"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);