Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    residenza
    Italia, Scomigo (TV)
    Messaggi
    11
    Buonasera andbin.

    Mi scusi se la disturbo nuovamente.
    Non sono in grado di capire questo concetto. Sembra semplice, ma non arrivo alla soluzione.

    Se ci rifacciamo al codice iniziale, tratto dal libro su cui studio:

    codice:

    codice:
    public class CiProvo {
     public void cambiaValore(int valore) {
      valore = 1000;
     }
    }
    Il parametro formale "valore" e la variabile locale anch'essa "valore" sono uguali?
    Se SI, perch�?

    codice:
    CiProvo ogg = new CiProvo();
    int numero = 10;
    ogg.cambiaValore(numero);
    System.out.println("il valore del numero � " + numero);
    Quando viene detto:

    Il parametro valore del metodo cambiaValore() , nel momento in cui � stato eseguito il metodo, non coincideva con la variabile numero, bensi immagazzinava solo la copia del suo valore (10).

    Perch�? Il parametro valore era uguale a 1000, e la variabile numero a 10?
    Come fa il parametro valore ad immagazzinare la copia del valore della variabile numero?

    Grazie mille ancora.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Fedro93 Visualizza il messaggio
    Se ci rifacciamo al codice iniziale, tratto dal libro su cui studio:

    codice:

    codice:
    public class CiProvo {
     public void cambiaValore(int valore) {
      valore = 1000;
     }
    }
    Il parametro formale "valore" e la variabile locale anch'essa "valore" sono uguali?
    Qui non ci sono due cose .... ma solo una: una singola variabile 'valore' che è il parametro formale del metodo. Ed è comunque locale al metodo, quando il metodo termina, la variabile 'valore' sparisce.


    Quote Originariamente inviata da Fedro93 Visualizza il messaggio
    codice:
    CiProvo ogg = new CiProvo();
    int numero = 10;
    ogg.cambiaValore(numero);
    System.out.println("il valore del numero � " + numero);
    Quando viene detto:

    Perché? Il parametro valore era uguale a 1000, e la variabile numero a 10?
    Come fa il parametro valore ad immagazzinare la copia del valore della variabile numero?
    Qui hai una variabile 'numero' che passi al metodo. Ma ribadisco che 'numero' e il parametro 'valore' sono due variabili DIVERSE. Si trovano in locazioni di memoria differenti e ciascuna ha i suoi 32 bit (essendo dei int). Quando si dice che "il parametro riceve una copia del valore" è semplicemente per dire che a basso livello gli N bit che ha e sta passando il chiamante vengono copiati in un'altra locazione di memoria che è quella del parametro. Quindi in effetti avviene che quel valore (10) si trova sia alla locazione di 'numero' che alla locazione di 'valore'.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.