【发布时间】:2014-05-02 13:51:03
【问题描述】:
我试图从另一个类打印一维数组。但问题是 print 语句只打印相同的元素。
例如:
输入客户总数:3
姓名:杰西卡
年龄:22
性别:女
姓名:约翰
年龄:28
性别:男
姓名:迈克
年龄:35
性别:男
我从这个程序中得到的输出与最后一个客户的元素相同。
姓名-------------年龄------------性别
迈克 35 男
迈克 35 男
迈克 35 男
相反,我想得到类似的东西:
姓名-------------年龄------------性别
杰西卡 22 女性
约翰 28 男性
迈克 35 男
我不知道我遗漏了什么部分或做错了什么。非常感谢任何反馈!
import java.util.Scanner;
public class Customer1234 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int x;
System.out.print("Enter total number of customers: ");
x = input.nextInt();
Customer [] customers = new Customer[x];
Customer.data(customers);
System.out.println("Name" + "-------------"+ "Age" +"-----------" +"Gender");
for(int i = 0; i <customers.length; i++){
System.out.println(customers[i].toString());
}
}
static class Customer{
private static String name;
private static int age;
private static String gender;
public Customer(String name, int age, String gender){
Customer.setName(name);
Customer.setAge(age);
Customer.setGender(gender);
}
public static void data(Customer [] customers){
Scanner input = new Scanner(System.in);
for(int i = 0; i < customers.length; i++){
System.out.print("Name: ");
setName(input.next());
System.out.print("Age: ");
setAge(input.nextInt());
System.out.print("Gender: ");
setGender(input.next());
customers[i] = new Customer( getName(), getAge(), getGender());
}
}
public static String getName() {
return name;
}
public static void setName(String name) {
Customer.name = name;
}
public static int getAge() {
return age;
}
public static void setAge(int age) {
Customer.age = age;
}
public static String getGender() {
return gender;
}
public static void setGender(String gender) {
Customer.gender= gender;
}
public String toString()
{
String result;
result = name +" "+ age +" "+ gender;
return result;
}
}
}
【问题讨论】: