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()); } }
ok ora vi spiego cosa succede quando lo eseguo: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); } }
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

Rispondi quotando
