Le funzioni in Java: differenze tra le versioni
(→Passaggio dei parametri ad una funzione) |
|||
Riga 28: | Riga 28: | ||
== Passaggio dei parametri ad una funzione == | == Passaggio dei parametri ad una funzione == | ||
+ | In Java, è possibile passare i parametri ad una funzione in due modalità: | ||
+ | # Passaggio per valore ("pass by value") | ||
+ | # Passaggio per riferimento ("pass by reference") | ||
+ | |||
+ | === Passaggio per valore === | ||
+ | Si tratta di un passaggio unidirezionale. Il valore del parametro effettivo viene copiato nella variabile della funzione chiamata che rappresenta il parametro formale. Se la funzione chiamata lo modifica, la funzione chiamante non potrà vedere questa modifica. | ||
+ | |||
+ | === Passaggio per riferimento=== | ||
+ | In questo caso il passaggio è potenzialmente bidirezionale. La funzione invocata riceve un riferimento al parametro effettivo; quindi se, nella funzione chiamata, avviene una modifica al parametro passato per riferimento, la modifica sarà visibile anche alla funzione chiamante. | ||
== Esempi Applicativi == | == Esempi Applicativi == |
Versione delle 14:11, 21 mar 2017
Indice
Introduzione alle funzioni
È possibile unire gruppi di istruzioni per formare delle "funzioni" usate per evitare di replicare porzioni di codice sorgente più volte. Invocare una funzione significa mandare in esecuzione la porzione di codice che la costituisce. Se una funzione è invocata più volte, allora la porzione di codice è eseguita più volte: il vantaggio è dunque quello di poter avere tante chiamate ma una sola porzione di codice.
Dichiarazione, definizione e chiamata di una funzione
In JAVA è possibile dichiarare e definire una funzione nel seguente modo:
modificatore_visibilità tipo_restituito nomeFunzione (tipo1 param1, tipo2 param2, ..., tipoN paramN) { // blocco di codice appartenente al metodo return varTipo; }
Il codice precedente definisce una funzione chiamata nomeFunzione che accetta come ingresso (dominio) N variabili (param1, param2, ..., paramN) ognuna con un determinato tipo e restituisce come uscita (codominio) una variabile il cui tipo è tipo_restituito.
Durante il flusso del programma, è possibile chiamare una funzione attraverso il suo nome, inserendo come argomento le necessarie variabili coerentemente con il dominio definito e assegnando il risultato ad una variabile dello stesso tipo di tipo_restituito'.
... // Serie di istruzioni tipo_restituito var = nomeFunzione(var1, var2, ..., varN); ... // Serie di istruzioni
Passaggio dei parametri ad una funzione
In Java, è possibile passare i parametri ad una funzione in due modalità:
- Passaggio per valore ("pass by value")
- Passaggio per riferimento ("pass by reference")
Passaggio per valore
Si tratta di un passaggio unidirezionale. Il valore del parametro effettivo viene copiato nella variabile della funzione chiamata che rappresenta il parametro formale. Se la funzione chiamata lo modifica, la funzione chiamante non potrà vedere questa modifica.
Passaggio per riferimento
In questo caso il passaggio è potenzialmente bidirezionale. La funzione invocata riceve un riferimento al parametro effettivo; quindi se, nella funzione chiamata, avviene una modifica al parametro passato per riferimento, la modifica sarà visibile anche alla funzione chiamante.