Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Cosa sono i passaggi per riferimento?
Forum - Java - Cosa sono i passaggi per riferimento?

Avatar
fabi3194 (Ex-Member)
Expert


Messaggi: 206
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 20:31
Lunedì, 10/11/2008
come si può capire della doanda, vorrei sapere cosa sono e come sono strutturati i passaggi per riferimento (sul mio manuale c'è scritto reference :-|)?grazie 8-|

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 0:23
Martedì, 11/11/2008
quando si parla di passaggi per valore o riferimento ci si riferisce al passaggio dei parametri dalla funzione all'ambiente chiamante. in assembly la cosa si capisce proprio molto bene, se hai tempo guardaci.

int funz(int x)

significa che la funzione funz restituisce un valore intero come risultato e prende come argomento un valore intero il cui parametro FORMALE ha nome x (qualsiasi nome di var va bene)


in java il passaggio è per valore, cioè la variabile che passi come argomento alla funzione viene in realtà duplicata e all'interno di funz viene usata la copia appena creata, senza modificare quindi il valore della variabile omonima presente nell'ambiente chiamante.

il passaggio per riferimento è diverso, invece del valore della variable viene passato proprio l'indirizzo di memoria della stessa, in modo che le modifiche fatte nella funzione apportino un effettivo cambiamento anche alla variabile nell'ambiente chimante.

i linguaggi che implementano davvero il passaggio byref sono pochissimi, forse il PROLOG e il c++.

il C per esempio usa un finto passaggio per riferimento: tutte le variabili vengono sempre passate per valore ma tramite i puntatori è possibile passare per valore l'indirizzo di memoria di una variabile, e l'effetto è lo stesso del passaggio byref.

ovviamente questo discorso è IMMENSO, ti conviene leggerlo da un buon manuale... pensa che all'uni c'è un esame intero su ste cose...

se hai (ovviamente) dubbi scrivi.




PM Quote
Avatar
fabi3194 (Ex-Member)
Expert


Messaggi: 206
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 16:11
Martedì, 11/11/2008
Grazie,ma continuo a non capire una cosa:
come si usa?
Mi faresti un piccolo esempio,così capisco subito
8-|8-|

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 19:37
Martedì, 11/11/2008
in java nn ho mai sentito parlare di passaggio per riferimento... esiste solo quello per valore!

il passaggi oper riferimento serve per modificare il valore della variabile passata anche nell'ambiente chiamante:

in C:

int i = 0;
void f(int *k)
{
    *k = 7;
    return;
}
void g(int k)
{
    k = 1111;
return;
}
int main()
{
     i = 3;
     f(i);
write(i);
     g(i);
write(i);
}

stampa 7 e poi ancora 7!

PM Quote
Avatar
etrofakus (Normal User)
Newbie


Messaggi: 1
Iscritto: 07/10/2010

Segnala al moderatore
Postato alle 11:45
Giovedì, 07/10/2010
Le variabili associate a tipi primitivi sono passate a un metodo come valore.
Java tratta le variabili collegati ad oggetti come riferimento agli stessi, quindi gli oggetti sono passati ai metodi per riferimento.

PM Quote