Passaggio dei parametri

L'espressione passaggio dei parametri è utilizzata per indicare il trasferimento delle informazioni di input di una funzione, tra il chiamante e la funzione stessa.
Questa operazione può avvenire in due modi differenti:

  • per valore
  • per riferimento o per indirizzo
Il passaggio dei parametri per valore prevede che il chiamante comunichi alla funzione il valore contenuto nelle variabili utilizzate per trasmettere i dati di input alla funzione.
Questo significa che la funzione riceve una copia del dato e, di conseguenza, ogni modifica al valore del parametro viene effettuata localmente alla funzione e non ha nessun effetto sul valore delle variabili utilizzate dal chiamante per il passaggio dei parametri.
Graficamente possiamo immaginare questa situazione come mostrato nella figura seguente:

Passaggio dei parametri per riferimento


Il passaggio dei parametri per riferimento o indirizzo prevede che il chiamante comunichi alla funzione l'indirizzo della memoria in cui si trova il dato da passare in input alla funzione.
Questo significa che la funzione lavora sulla stessa area di memoria utilizzata dal chiamante per memorizzare i dati e, di conseguenza, ogni modifica al valore del parametro, fatta all'interno della funzione, ha effetto anche sul valore delle variabili utilizzate dal chiamante per il passaggio dei parametri.
Graficamente possiamo immaginare questa situazione come mostrato nella figura seguente:

Passaggio dei parametri per riferimento

Passaggio dei parametri in Java

Il linguaggio Java prevede esclusivamente il passaggio dei parametri per valore.
Occorre però ricordare che i tipi di dato in Java possono essere primitivi o riferimento.

Nel caso dei tipi primitivi, il valore della variabile è costituito dal valore del tipo specifico, per cui le modifiche ai valori dei parametri, fatte all'interno della funzione, non hanno effetto sui valori contenuti nelle variabili utilizzate dal chiamante per il passaggio dei dati.

Nel caso dei tipi riferimento, invece, il valore della variabile è il riferimento all'area di memoria in cui si trova il dato e, pertanto, le modifiche ai valori di tali parametri, fatte all'interno della funzione, hanno effetto anche sui valori contenuti nelle variabili utilizzate dal chiamante per il passaggio dei dati.