salve ragazzi vi seguo da molto tempo, e voglio ringraziare tutto il forum per le ottime guide.
vi espongo il mio problema:
allora io provengo dal c++ quindi di java ne so poco (per ora) cmq ho un problema nella visualizzazione di un array di oggetti:
ho due classi: Main e Clienti cosi fatte:
codice:
public class Clienti {
//dichiarazioni
static Scanner in = new Scanner(System.in);
static String nome;
static String cognome;
//costruttore
public Clienti() {
nome="ND";
cognome="ND";
}
public Clienti(String nome,String cognome)
{
nome = nome;
cognome = cognome;
}
//get e set
public static String getCognome() {
return cognome;
}
public static void setCognome(String cognome) {
Clienti.cognome = cognome;
}
public static String getNome() {
return nome;
}
public static void setNome(String nome) {
Clienti.nome = nome;
}
//metodi
public static void registraCliente(Clienti arrayDiClienti[],int nc)
{
for (int i=0;i<nc;i++)
{
System.out.println("Inserisci il Nome: ");
System.out.println(" ");
nome=in.next();
System.out.println("Inserisci il Cognome: ");
System.out.println(" ");
cognome=in.next();
arrayDiClienti[i]=new Clienti(nome,cognome);
}
}
public static void visualizzaArrayClienti(Clienti arrayDiClienti[])
{
for (int i=0;i<arrayDiClienti.length;i++)
{
System.out.println(arrayDiClienti[i].getNome());
System.out.println(arrayDiClienti[i].getCognome());
}
}
codice:
public class Main {
public static void main(String[] args) {
Clienti arrayDiClienti[]=null;
int nc;
//########## REGISTRA CLIENTE
System.out.println("Inserisci il numero di clienti da registrare: ");
System.out.println("");
nc=in.nextInt();
arrayDiClienti=new Clienti[nc];
Clienti.registraCliente(arrayDiClienti,nc);
Clienti.visualizzaArrayClienti(arrayDiClienti);
}
}
ok ora vi spiego cosa succede quando lo eseguo:
prima di tutto mi chiede quanti clienti voglio registrare, per esempio facciamo due poi dopo aver creato correttamente i due oggetti e averli messi nell'array, chiamo il metodo per farli visualizzare ma qui viene il problema infatti il metodo visualizza soltanto l'ultimo cliente creato.
faccio un esempio:
primo cliente:
mario
rossi
secondo cliente
gianni
bianchi
l'output del metodo è:
gianni
bianchi
gianni
bianchi
praticamente il metodo get e come se prendesse sempre l'ultimo nome o cognome inserito.
confido nel vostro aiuto
grazie mille in anticipo
NgL