Punta all'oggetto

di il
5 risposte

Punta all'oggetto

Salve ragazzi ho questo codice
public class Vowel {
  private char var;
  public static void main (String [] args) {
     char var1 = 'a';
     char var2 = var1;
     var2 = 'e';

     Vowel obj1 = new Vowel ();
     Vowel obj2 = obj1;
     obj1.var = 'i';
     obj2.var = 'o';
  
     System.out.println(var1 + ", " +var2);
     System.out.print(obj1.var + ", "+obj2.var);  
  }
}
allora ditemi se il ragionamento è giusto (l'ho compilato e funziona),quando fa obj2 = obj1 vuol dire che obj2 punta all'area di memoria dove è allocato obj1 quindi obj1 è come se non ci fosse come del resto obj1.var, e dunque va a stampare nel secondo system.out "o,o",non so se sono stato chiarissimo

5 Risposte

  • Re: Punta all'oggetto

    quindi obj1 è come se non ci fosse[/quote è

    Che vuoi dire?
  • Re: Punta all'oggetto

    maracaibo25 ha scritto:


    quando fa obj2 = obj1 vuol dire che obj2 punta all'area di memoria dove è allocato obj1 quindi obj1 è come se non ci fosse
    In che senso "come se non ci fosse"?? Certo che c'é!!

    Dopo queste due righe:
         Vowel obj1 = new Vowel ();
         Vowel obj2 = obj1;
    La situazione è semplice: la variabile obj1 CONTINUA a fare riferimento a quell'oggetto Vowel e dopo la seconda riga ANCHE obj2 fa riferimento a quello stesso oggetto (ce n'é 1 solo di oggetto Vowel !).

    maracaibo25 ha scritto:


    come del resto obj1.var, e dunque va a stampare nel secondo system.out "o,o",non so se sono stato chiarissimo
    Essendoci un solo oggetto, poi dopo che tu usi obj1 oppure obj2 per cambiare var .... lo cambi sempre sullo stesso oggetto!
    Pertanto al println obj1.var e obj2.var per forza di cose prenderanno lo stesso valore, che è nell'unico oggetto Vowel.

    Scusa ma veramente hai ancora questi dubbi??
  • Re: Punta all'oggetto

    andbin ha scritto:


    maracaibo25 ha scritto:


    quando fa obj2 = obj1 vuol dire che obj2 punta all'area di memoria dove è allocato obj1 quindi obj1 è come se non ci fosse
    In che senso "come se non ci fosse"?? Certo che c'é!!

    Dopo queste due righe:
         Vowel obj1 = new Vowel ();
         Vowel obj2 = obj1;
    La situazione è semplice: la variabile obj1 CONTINUA a fare riferimento a quell'oggetto Vowel e dopo la seconda riga ANCHE obj2 fa riferimento a quello stesso oggetto (ce n'é 1 solo di oggetto Vowel !).

    maracaibo25 ha scritto:


    come del resto obj1.var, e dunque va a stampare nel secondo system.out "o,o",non so se sono stato chiarissimo
    Essendoci un solo oggetto, poi dopo che tu usi obj1 oppure obj2 per cambiare var .... lo cambi sempre sullo stesso oggetto!
    Pertanto al println obj1.var e obj2.var per forza di cose prenderanno lo stesso valore, che è nell'unico oggetto Vowel.

    Scusa ma veramente hai ancora questi dubbi??
    purtroppo si andbin in qualche esercizio ho ancora un po di difficoltà
  • Re: Punta all'oggetto

    Non è un problema di esercizi ma come ti dicevo tempo fa di basi del linguaggio. Il Java ti è ostico, perché perdi il tuo tempo e non ti orienti su un linguaggio più semplice e che ti permetta di andare avanti ed essere produttivo?
  • Re: Punta all'oggetto

    oregon ha scritto:


    Non è un problema di esercizi ma come ti dicevo tempo fa di basi del linguaggio. Il Java ti è ostico, perché perdi il tuo tempo e non ti orienti su un linguaggio più semplice e che ti permetta di andare avanti ed essere produttivo?
    E' vero è ostico però è anche molto affascinante e forse il linguaggio piu potente, mi piace lo sto studiando anche se avvolte inciampo come prima e vorrei riuscire a prendere questa benedetta certificazione per poi lavorarci
Devi accedere o registrarti per scrivere nel forum
5 risposte