ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Basi | Espressioni | Comandi | Classi | Ereditarieta | Eccezioni | Thread | Utilita | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

Comandi
Comandi
if
switch
fall-through
while
do-while
for
interruzioni
label
return
eccezioni
Stringhe/Array
Array
Caratteristiche
Creazione
Stringhe

<<< return >>>
Ritorna un valore
return <espressione>

In una classe Java abbiamo dei metodi. I metodi sono simili alle funzioni matematiche, in particolare prendono dei valori e ritornano dei risultati. A differenza delle funzioni però, dove il calcolo viene fatto solo con espressioni, i metodi fanno il calcolo eseguendo una serie di operazioni. Ricordiamo il fatto che le operazioni eseguite comportano la modifica della memoria, e che i risultati dei calcoli vengono memorizzati in variabili. Per fare si che un metodo ritorni un valore occorre dare un comando esplicito. Questo comando è appunto return. Se si vuole che il metodo ritorni un determinato valore, calcolato con una espressione o memorizzato in una variabile, occorre usare return seguito dall'espressione che calcola il valore da ritornare. Return ha anche un'altra importante funzione: termina l'esecuzione del metodo ritornando al chiamante.

Deve essere compatibile con la dichiarazione
int f() {
 return 1;
}
Stack g() {
  return new Stack();
}
void h() {
  return;
}

L'espressione che segue il return non può essere qualsiasi: deve essere una espressione di un certo tipo, compatibile con la dichiarazione del metodo. Nel listato possiamo notare che abbiamo tre diversi metodi, ciascuno con un diverso tipo ritornato. Nel primo caso un tipo primitivo, nel secondo un oggetto e nel terzo niente. Il terzo caso è speciale: usare void significa dire che il metodo non ritorna valore(e quindi non può essere invocato in una espressione che richiede un valore come un assegnamento: x=h() è un errore.

Si noterà che nel corpo del meotodo l'espressione che segue da un risultato di tipo "compatibile" con quello dichiarato dal metodo. Infatti se il metodo ritorna un intero, abbiamo una espressione intera, se il metodo ritorna un oggetto, ne costruiamo uno del tipo richiesto, e se invece il metodo ritorna void, dopo il return non specifichiamo nessuna espressione. Da notare semplicemente che vengono fatte le solite conversioni. Se dichiaro un metodo ritornare double, anche se scrivo una espressione intera non c'è problema perchè questa viene promossa a double. Come pure, se il meotodo ritorna uno Stack, sarà possibile ritornare un oggetto di qualsiasi classe derivata. Infatti, come vedremo abbondamentemente in seguito, una classe è sostituibile con tutte le classi derivate. Ovvero " un pesce rosso è anche un pesce". Ma riprenderemo il discorso.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com