Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    Oggetti java 2 parte : )

    Ho una nuova preoccupazione per chi avesse seguito la mia scorsa avventura.
    Adesso vorrei fare un metodo ingrado di scambiare qualsiasi valore di un oggetto con qualsiasi altro valore di un altro oggetto.

    Esempio: gli oggetti hanno varie variabili di istanza, come:

    colore
    posizione
    grandezza
    ecc..

    voglio fare un metodo che richiamo in questo modo:

    oggetto1.scambia(oggetto4, posizione) -ma non sono ancora riuscito a realizzarlo...nè mi va di pensare che posso solo creare metodi per ogni variabile....forse potrei inserire queste variabili in una classe e quindi passare al metodo (Oggetto nome, Argomenti nome2)?

    Non so se sono stato chiaro...intanto continuo le prove, se avete dubbi, o altre soluz. fatemi sapere. :bubu: Luca

  2. #2
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    La cosa è un pò cervellotica...
    Mi vengono in mente tre soluzioni:
    1)Creare un metodo per ogni possibile scambio
    2)All'interno della classe infilare tutte le variabili in un array di Object, in questo modo nel metodo di scambio non dovrai far altro che passare l'indice della variabile da scambiare; esempio:
    codice:
    //All'interno della classe "MioOggetto"
    //.....
    private String colore,posizione,grandezza
    colore =.....inizializza variabili
    
    public Object[] obj = new Object[3];
    obj[0] = colore;
    obj[1] = posizione;
    obj[2] = grandezza;
    //......
    public void scambia(MioOggetto ogg,int pos){
      this.obj[pos] = ogg.obj[pos];
    //Attenzione! ciò non cambia il valore della
    //variabile String, ma solo l'oggetto nell'array
    }
    //...
    Così credo dovrebbe andare, ma mi sono appena svegliato... :quipy:
    3)Ufff...ora non mi ricordo il terzo modo...mi pareva pure il migliore Comunque non è facile fare così un discorso in generale, con Oggetti di qualsiasi tipo...
    Beh se mi ritorna in mente posto dopo
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Altro caso:
    Se le variabili sono tutte istanze di classi diverse potresti fare una cosa del genere:
    codice:
    public void scambia(MioOggetto ogg,Object ob){
      if(ob instanceof String) ....
      else if (ob instanceof Integer) ....
      ......
    }
    Od ancor meglio son un costrutto CASE.
    Vabbè l'altro modo ancora non mi ritorna in mente...ciao
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Il fatto è che non voglio usare un array di oggetti, sto cercando proprio per questo una soluzione che secondo me si adatti piu alla filosofia della programmazione ad oggetti.
    Mi lascia perplesso il fatto che non posso riferirmi al contenuto delle variabili.....se non sbaglio in c a questo non servivano i puntatori?

    Luca

  5. #5
    In java non puoi usare esplicitamente i puntatori.
    Una cosa del genere ti va bene?
    codice:
    public class MyObject {
    
    public final static int MY1=1,MY2=2,MY3=3;
    
    public int my1;
    public int my2;
    public int my3;
    //Volendo potresti metterle private e
    //creare dei metodi di get.
    ..
    ..
    public void scambia(Object x,int pos){
    if(pos==MyObject.MY1){
         this.my1=x.my1;
    }else if(pos==MyObject.MY2){
       this.my2=x.my2;
    }
    else {
      this.my3=x.my3;
    }
    }
    }
    Una domanda , ma a cosa ti serve????
    :gren: :gren: :gren:
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    grazie! assolutamente no! : ) Credevo ci fossero modi piu belli per fare comunicare gli oggetti, tutto qui..ma se manca il puntatore forse questo non è possibile, forse con un metodo di classe? O forse mi mancano certe conoscenze più approfondite..

    p.s: ti è venuto in mente Xadoom? : )

    Grazie! :bubu: :bubu: :bubu: :bubu: :bubu: :bubu:

  7. #7
    Allora non so

    Ciauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  8. #8
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Purtroppo no.
    Non capisco perchè non ti vada di utillizzare una array di oggetti, in realtà ciò si adatta completamente alla programmazione ad oggetti in quanto sfrutti appieno l'ereditarietà. In pratica ogni oggetto estende la classe Object e fare nel modo in cui ti ho accennato mi pare sia il metodo per tenersi il più generico possibile!
    Facci sapere se risolvi in latro modo.
    Ciao
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Si va bene, ti ringrazio

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