Passaggio dei parametri in Java

di il
6 risposte

Passaggio dei parametri in Java

Salve,poteste indicarmi l'output di questo codice? e se il passaggio di Object e int avviene in modo diverso? Grazie

class Test {
public static void swap (Object a, Object b){
Object tmp=a;
a=b;
b=tmp
}
public static void swap ( int a, int b){
int tmp=a;
a=b;
b=tmp;
}
public static void main (String args[]){
String x="ciao",y="Pippo";
swap (x,y);
S.o.println(x); S.o.println(y);

int i = 3, j=7;
swap (i,j);
S.o.println(i); S.o.println(j);
}
}

6 Risposte

  • Re: Passaggio dei parametri in Java

    Non ho capito!

    Dovremmo, o qualche anima buona del forum dovrebbe:

    1) installare la VM Java
    2) usare un editor per fare copia/incolla del TUO codice
    3) compilarlo
    4) corregge i bug (perche' CI SONO DEI BUG), goto 3
    5) eseguirlo
    6) analizzare il risultato
    7) scrivere tale risultato come risposta al TUO POST?

    La domanda sorge spontanea: ma perche' non lo fai tu?

    In ogni caso, NON SERVE NEMMENO applicare i passi da 1) a 7) per sapere quale sia l'output, BASTA un'ANALISI STATICA del codice.

    Se il tuo dubbio e' PERCHE' continua a scrivere "ciao Pippo" anche con lo "swap", ti ricordo che Java ha SOLTANTO una sintassi simile a quella del C++, MA Java e C/C++ NON E' LA STESSA COSA, e le differenze sono proprio in questi dettagli.

    Quindi: studiate, gente, studiate
  • Re: Passaggio dei parametri in Java

    AlexNapoli ha scritto:


    Salve,poteste indicarmi l'output di questo codice? e se il passaggio di Object e int avviene in modo diverso?
    La risposta semplice e veloce: quei due metodi swap sono assolutamente inutili e inappropriati. Il chiamante (chi invoca quei swap) NON "vede" alcun scambio!
  • Re: Passaggio dei parametri in Java

    andbin ha scritto:


    AlexNapoli ha scritto:


    Salve,poteste indicarmi l'output di questo codice? e se il passaggio di Object e int avviene in modo diverso?
    La risposta semplice e veloce: quei due metodi swap sono assolutamente inutili e inappropriati. Il chiamante (chi invoca quei swap) NON "vede" alcun scambio!
    @adbin, il problema e' che il nostro autore ragiona ancora alla C/C++
  • Re: Passaggio dei parametri in Java

    migliorabile ha scritto:


    @adbin, il problema e' che il nostro autore ragiona ancora alla C/C++
    Molto probabile! A parte il fatto che in C/C++ un void swap(int a, int b) scritto così comunque non funziona lo stesso.


    @AlexNapoli: quello che in C/C++ si può fare (e in Java NO) è passare ad una funzione l'indirizzo di una variabile.
  • Re: Passaggio dei parametri in Java

    Si, in effetti, forse sono stato io poco chiaro a spiegarmi, non mi occorreva il mero risultato perchè per l'appunto potevo direttamente eseguirlo io e trovare la risposta. volevo capire il ragionamento che c'è dietro e la differenza del passaggio dei parametri per riferimento e per valore. Grazie a tutti
  • Re: Passaggio dei parametri in Java

    AlexNapoli ha scritto:


    volevo capire il ragionamento che c'è dietro e la differenza del passaggio dei parametri per riferimento e per valore. Grazie a tutti
    I parametri a e b sono variabili DISTINTE dalle variabili x/y o i/j che ci sono nel main.
    All'inizio i parametri a/b ricevono una COPIA dei valori delle variabili del main. Ne consegue che assegnare qualcos'altro ai parametri in swap, NON cambia le variabili nel main.
Devi accedere o registrarti per scrivere nel forum
6 risposte