java - Printing 1D Array -
i trying print one-dimensional array class. problem print statement prints same elements.
for example:
enter total number of customers: 3
name: jessica
age: 22
gender: female
name: john
age: 28
gender: male
name: mike
age: 35
gender: male
the outputs program same elements of last customers.
name-------------age-----------gender
mike 35 male
mike 35 male
mike 35 male
instead want like:
name-------------age-----------gender
jessica 22 female
john 28 male
mike 35 male
i not know part missing or doing incorrectly. i'd appreciate feedback!
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 = 0; <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 = 0; < 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; } } }
your problem use of static everywhere in customer class. rewrite as:
private string name; private int age; private string gender; public customer(string name, int age, string gender){ this.name = name; this.age = age; this.gender = gender; } public static void data(customer [] customers){ scanner input = new scanner(system.in); for(int = 0; < 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 string getname() { return name; } public void setname(string name) { this.name = name; } public int getage() { return age; } public void setage(int age) { this.age = age; } public string getgender() { return gender; } public void setgender(string gender) { this.gender= gender; } public string tostring() { string result; result = name +" "+ age +" "+ gender; return result; } }
Comments
Post a Comment