Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420

    [java] swap e passaggio per copia

    salve a tutti, ho letto che in java esiste il solo passaggio per copia.. anche i riferimenti vengono passati per copia. Non capisco allora l'output del seguente codice:

    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    package javaapplication1;
    
    
    
    
    
    /**
     *
     * @author Administrator
     */
    public class Main {
    
        
         public static class Prova
         {
             int x;
             int y;
             Prova (int xx,int yy)
                 {
                    x=xx;
                    y=yy;
                 }
         }
    
        private static void swap(Prova a, Prova b)
        {
            System.out.println("DENTRO PRIMA: uno= " + a.x + " due= " + b.x );
            Prova temp;
            temp=a;
            a=b;
            b=temp;
            System.out.println("DENTRO DOPO: uno= " + a.x + " due= " + b.x );
        }
    
        private static void change(Prova a, Prova b)
        {
            a.x=999999999;
            b.x=999999999;
        }
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
    
            System.out.println("Hello World!");
    
            Prova uno,due;
    
            uno = new Prova(1,1);
            due = new Prova(2,2);
            System.out.println("PRIMA: uno= " + uno.x + " due= " + due.x );
            swap(uno,due);
            System.out.println("DOPO: uno= " + uno.x + " due= " + due.x );
    
    
            change(uno,due);
            System.out.println("DOPO ANZ: uno= " + uno.x + " due= " + due.x );
        }
    
        
    
    }

    Non capisco perchè la funzione change funzioni e la funzione swap no.
    Che significa copiare i riferimenti?
    alla fine anche se copio l'indirizzo (il riferimento) di un oggetto X, se vi accedo, accederò allo stesso oggetto.. non ad una copia dell'oggetto (perchè non lo creo da nessuna parte con l'operatore new..)
    the sALIEN

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Java --> Forum Java.

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    420
    ok
    the sALIEN

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 © 2025 vBulletin Solutions, Inc. All rights reserved.