PDA

View Full Version : [JAVA] Scova l'errore


Burlindo
02-11-2004, 17:58
Ciao a tutti, dopami c'è il primo compitino di linguaggi 2. Ero insicuro su di un esercizio anche se adesso penso di avere scovato la soluzione. Comunque come verifica lo propongo lo stesso:

Supponendo che sia definita una classe Vetture con un metodo d'istanza mesiInGiacenza di tipo int , che riporta il numero di mesi di permanenza in concessionaria, dire quali errori sono contenuti nel seguente frammento di codice java:


Vetture [] Renault5;
boolean [] vendute [ Renault5.length() ];
for (int i=0; i< Renault5.lenght(); i++)
vendute[i] = Renault5[i].mesiInGiacenza() == 0;

-0-

Bene, si vede subito che c'è un casting non ammesso nella 4 riga, infattiil tipo boolean non accetta nessun tipo di casting.

Renault5.lenght() è sbagliato, per far ritornare il numero di elementi di un array si usa lenght senza parentesi. Lenght() si usa con le stringhe.

Ricapitolando io ho notato 2 errori, o meglio, mi sembra che gli errori siano questi. Chi mi puo' dire la sua????

ally
02-11-2004, 19:28
...ma questo frammento cosa dovrebbe fare? :wtf:

71103
02-11-2004, 20:16
guarda che il cast alla 4^ riga a me pare legalissimo... non importa i cast che può fare o non fare il tipo boolean, l'operatore doppio uguale (==) restituisce un booleano, non c'è nessun cast.

l'errore clamoroso si trova alla 2^ riga, le parentesi stanno sia dopo il tipo sia dopo l'identificatore, e poi in Java mi pare che non è possibile specificare una costante, cioè l'array deve essere creato x forza dinamicamente con new (ma forse su quest'ultimo punto mi sbaglio io).

E comunque, anche ammettendo un costrutto del tipo


tipo ident[costante];


il problema è che la length non restituisce un valore costante; tantopiù che la lunghezza dell'array di Vetture non è stata ancora stabilita alla 2^ riga, perché l'array non è stato creato ne' staticamente ne' dinamicamente...

Burlindo
02-11-2004, 20:42
In effetti non ci avevo pensato all'inizializzazione...

In quanto al casting ho ancora qualche dubbio.... ora faccio una prova con eclipse....

Burlindo
02-11-2004, 20:52
Cavolo grazie! Non c'è nessun problema sul casting! Che stupido che sono. Il problema è sull'inizializzazione e sul metodo length().

Ps. un array lo puoi creare anche con questa sintassi:

int array[] = {1,2,3};

e anche

int [] array = {1,2,3}; //così è scritto anche nei lucidi del prof...

cionci
03-11-2004, 00:14
71103: hai la signature irregolare... L'immagine in firma può essere al massimo 100x50 pixel... Puoi editare ? Grazie ;)