Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    59

    [JAVA] Passaggio parametri

    Come si effettua in java il passaggio di parametri per "valore", inteso come veniva fatto in C? Per spiegarmi meglio: ho bisogno che ad un metodo venga passato come parametro la copia di un oggetto e non il reference come java fa...

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425

    Re: [JAVA] Passaggio parametri

    Originariamente inviato da useralex
    Come si effettua in java il passaggio di parametri per "valore", inteso come veniva fatto in C? Per spiegarmi meglio: ho bisogno che ad un metodo venga passato come parametro la copia di un oggetto e non il reference come java fa...
    In Java gli oggetti vengono passati solo per riferimento, non credo ci sia un sistema per mandarli anche per valore.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    l'unico metodo che mi viene in mente per passare oggetti per valore è utilizzare il clone()

    Example:
    codice:
    public static void scambia(Integer i, Integer j){
      Integer k=i; i=j; j=k;
    }
    
    public static void main(String args[]){
       Integer n=new Integer(4);
       Integer n1=new Integer(2);
    
       scambia(n,n1); //ha effetto siccome gli oggetti sono per address
       scambia(n.clone(),n1.clone());  //non ha effetto siccome è per value
    }
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sì... l'unico modo per poter "passare per valore" un oggetto ad un metodo è quello di costruirne una copia!
    Ciò può essere fatto utilizzando il metodo clone(), per quelle classi che implementano Cloneable, oppure costruendo un nuovo oggetto, copia del primo, utilizzando i metodi (eventualmente il costruttore) previsti.


    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

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.