У меня есть пользователь, вводя данные Имя, Фамилия и Номер. Проблема заключается в том, когда я распечатываю массив, он будет распечатывать только последние введенные данные.Array печать одной и той же ячейки снова и снова
Например, если пользователь вводит: (F, V 12345) (L, K 2345) (R, G 4555) // Инициалы, используемые вместо имен
Программа будет распечатывать:
R, G 4555 R, G 4555 R, G 4555
Datab.java
public Datab()
{
first = null;
last = null;
cell = null;
}
public Datab(String f, String l, String c)
{
first=f;
last=l;
cell=c;
}
public static String getFirst(Datab friends)
{
Scanner kb = new Scanner(System.in);
System.out.println("Enter First name: ");
first = kb.next();
return first;
}
public static String getLast(Datab friends)
{
Scanner kb = new Scanner(System.in);
System.out.println("Enter Last name: ");
last = kb.next();
return last;
}
public static String getCell(Datab friends)
{
Scanner kb = new Scanner(System.in);
System.out.println("Enter Cell Number: ");
cell = kb.next();
return cell;
}
public String toString(){
return (first + " ,"+" "+ last + " "+ cell);
}
}
DBMS.java
Datab[] friends = new Datab[n];
for (int i = 0; i < friends.length; i++) {
friends[i] = new Datab();
System.out.println("\nFilling object #: " + (i + 1));
friends[i].getFirst(friends[i]);
friends[i].getLast(friends[i]);
friends[i].getCell(friends[i]);
}
for(int x=0; x<friends.length; x++){
System.out.println(friends[x]);
}
друзья [0] .getFirst (друзья [0]); почему это получается? он должен быть установлен ... и вы вручную устанавливаете индекс 0 вместо использования i. – Pratik
К сожалению, это была опечатка с моей стороны. Предполагается, что это друзья [i]. –
друзья [i] = new Datab(); не следует ли здесь применять явный конструктор? где вы определяете поля объекта? – drgPP