|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2010
Messaggi: 15
|
[JAVA] problema con array per rubrica telefonica
ciao a tutti.
Sto cercando di risolvere un esercizio preso da un libro, il cui scopo è creare una semplice rubrica telefonica. Ho creato 5 classi, tra le quali c'è la classe "Schede", che in teoria dovrebbe avere un array contenente tutti gli oggetti della classe "Contatto". Questo è il codice della classe Schede: Codice:
public class Schede
{
public Contatto schede[]=new Contatto[5];
schede[0]=new Contatto("luca rossi","piazza lodi 1",0211113344);
schede[1]=new Contatto("mario bianchi","piazza lodi 2",0211223344);
schede[2]=new Contatto("paolo rosa","piazza lodi 3",0211333344);
schede[3]=new Contatto("marco blu","piazza lodi 4",0211443344);
schede[4]=new Contatto("lucia giallo","piazza lodi 5",0211553344);
}
Dove sta il problema nel codice che ho scritto? E, soprattutto, perché mi chiede una parentesi graffa aperta proprio in quel punto?
|
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Dec 2010
Messaggi: 18
|
Ciao, c'è si un errore di sintassi.
devi dichiarare un array di contatti. public Contatto[] schede = new Contatto[5]; a quel punto schede[i] potrà contenere oggetti di tipo Contatto tu scritto così hai dichiarato un oggetto Contatto di nome schede[] e ti da errore in compilazione Ultima modifica di m-mad : 14-01-2011 alle 18:08. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Sep 2010
Messaggi: 15
|
ho provato anche come dici tu, ma da sempre lo stesso errore
Ho appena fatto una prova: nella stessa classe ho inserito il metodo main, e l'errore sparisce! E ho anche provato a creare degli array di interi in altre classi che non hanno il metodo main, e mi da ancora l'errore (???) Vuol forse dire che non posso creare array in classi che non hanno il metodo main? Mi sembra strano. Ultima modifica di boris88 : 14-01-2011 alle 18:14. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Quote:
Codice:
public class Schede{
public Contatto schede[]=new Contatto[5];
{
schede[0]=new Contatto("luca rossi","piazza lodi 1",0211113344);
schede[1]=new Contatto("mario bianchi","piazza lodi 2",0211223344);
schede[2]=new Contatto("paolo rosa","piazza lodi 3",0211333344);
schede[3]=new Contatto("marco blu","piazza lodi 4",0211443344);
schede[4]=new Contatto("lucia giallo","piazza lodi 5",0211553344);
}
}
|
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Dec 2010
Messaggi: 18
|
Se ho capito bene quello che hai scritto....
il main è il metodo di esecuzione. nelle altre classi puoi istanziare nel costruttore e nei vari metodi. non puoi mandare in esecuzione una classe la classe schede deve rappresentare l'oggetto schede e i metodi che manipolano oggetti schede. non ho guardato la dichiarazione della classe perchè davo per scontato che il codice di dichiarazione e popolamento dell'array venisse messo nel main. Ultima modifica di m-mad : 14-01-2011 alle 19:23. |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Dec 2010
Messaggi: 18
|
mi son accorto di aver detto una stupidata sulla dichiarazione funziona lo stesso, rimane il discorso del main
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Sep 2010
Messaggi: 15
|
ah, ho capito (almeno penso...)
Il mio errore stava nel fatto che vedevo quelle istruzioni di popolamento degli array come semplici assegnazioni (cosi come avrei fatto con una qualsiasi variabile) |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
In realtà quelle sono semplici assegnazioni. Il punto è che non sono delle dichiarazioni di variabili e solo in quel caso Java permette di effettuare un'assegnazione perché in quel caso si tratta di un'inizializzazione.
|
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: Sep 2010
Messaggi: 15
|
ok, ora penso proprio di aver capito
quindi non avrei avuto quel problema se avessi scritto l'array in questo modo: Codice:
...
Contatto[] schede={new Contatto("luca rossi","piazza lodi 1",02111113344), new Contatto(....))}
...
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:40.




















