Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [java]spiegazioni su perchè stampa questi valori

    Salve,
    vorrei che qualcuno mi spiegasse come mai stampa questi risultati:

    codice:
    class A {
    
        private int x;
    
        public A(int val) {
            x = val;
        }
    
        public void set(int val) {
            x = val;
        }
    
        public int get() {
            return x;
        }
    }
    
    class PassaggioParametri {
    
        public static void metodoUno(A p1, A p2) {
            p1.set(3);
            p2.set(5);
            A temp;
            temp = p1;
            p1 = p2;
            p2 = temp;
        }
    
        public static void metodoDue(int p1, int p2) {
            p1 = 3;
            p2 = 5;
            int temp;
            temp = p1;
            p1 = p2;
            p2 = temp;
        }
    
        public static void main(String[] args) {
            A a1 = new A(1);
            A a2 = new A(2);
            int i1 = 1;
            int i2 = 2;
            System.out.println("Valore a1: " + a1.get());
            System.out.println("Valore a2: " + a2.get());
            System.out.println("Valore i1: " + i1);
            System.out.println("Valore i2: " + i2);
            metodoUno(a1, a2);
            metodoDue(i1, i2);
            System.out.println("Valore a1: " + a1.get());
            System.out.println("Valore a2: " + a2.get());
            System.out.println("Valore i1: " + i1);
            System.out.println("Valore i2: " + i2);
        }
    }
    Valore a1: 1
    Valore a2: 2
    Valore i1: 1
    Valore i2: 2
    da qui in poi non capisco perchè questi risultati.
    Valore a1: 3
    Valore a2: 5
    Valore i1: 1
    Valore i2: 2

    Grazie

  2. #2
    In Java, il passaggio dei parametri attuali avviene per valore.
    Per quanto riguarda i tipi primitivi viene fatta una copia del valore che dunque viene passato ad un metodo;
    invece per quanto riguarda gli oggetti, questi vengono passati per riferimento, ma questo stesso riferimento viene passato per valore, cioè al metodo viene passata la copia.

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.