Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA] Visibilità istanze

    Salve a tutti!

    Per un progetto, ho bisogno che varie istanze appartenenti a classi diverse (ma facenti parte dello stesso programma) si possano vedere tra loro. Ho visto un paio di soluzioni:

    1) Istanziare le classi "in cascata", quindi classe1 che istanzia classe2, la quale istanzia classe3, e così via.

    2) Istanziare le classi in una classe comune e passare da quella per accedere alle varie istanze. Obiettivamente, mi sembra la soluzione più sporca, voi che dite?

    Ho sentito parlare dei packages, ma non so se possono essermi d'aiuto. Qualche suggerimento?
    Powered by Linux

    "Windows cerca di fare Unix e ci riesce male, Red Hat cerca di fare Windows e ci riesce benissimo" (Jimmy Olgeni)

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    62
    Premetto di non sapere nulla di java

    Linguaggio permettendo, perche' non usi un contenitore ( in c++ userei un std::vector<MyClass*> ad esempio ) come membro statico e aggiungi una riga al costruttore della classe sicche' ogni istanza aggiunge a questo contenitore un puntatore a se stessa ?

    PS: avevo letto male, se le classi sono diverse non e' una soluzione accettabile, scusa


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

    Moderazione

    Java ha un forum dedicato.

    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

  4. #4
    se mi spieghi meglio magari posso aiutarti.....
    le classi che possono vedersi attraverso i vari package....dipende da come dichiari la loro visibilità che cmq mi pare di default sia package (all'interno di uno stesso package le classi sono tutte visibili tra loro).

    L'organizzazione in package è un qualcosa che riguarda più l'organizzazione (cioè mettere classi correlate all'interno dello stesso pacchetto magari limitando la visibilità di alcune di loro)......

    Anche l'accesso alle variabili dipende da come le dichiari (solitamente le variabili sono provate e per accedervi si utilizzano metodi set e get).

  5. #5
    Proverò a spiegare meglio, magari ho fatto confusione

    Ho tre classi. Devo accedere, dall'istanza di una, alle istanze di un'altra, e sono in classi diverse.

    //Classe1
    //Classe2

    classe_madre
    {
    private Classe1 classe1 = new Classe1();
    private Classe2 classe2 = new Classe2();
    }

    Classe3
    {
    private Classe3 classe3 = new Classe3();
    }

    Come faccio, dall'interno di classe3 (quindi, da dentro l'istanza), ad accedere a classe1 e classe2? Mi possono aiutare i packages?
    Powered by Linux

    "Windows cerca di fare Unix e ci riesce male, Red Hat cerca di fare Windows e ci riesce benissimo" (Jimmy Olgeni)

  6. #6
    no...

    dichiari due metodi pubblici getClasse1
    getClasse2 per l'accesso a quelle istanze anche dall'esterno.....

    la visibilità della classe madre può essere default se classe3 è dello stesso package...
    altrimenti public

  7. #7
    E' un pò il metodo della classe comune che ho spiegato all'inizio del thread (e quello che ho implementato attualmente), ma non è un pò sporco o sono pare mie?
    Powered by Linux

    "Windows cerca di fare Unix e ci riesce male, Red Hat cerca di fare Windows e ci riesce benissimo" (Jimmy Olgeni)

  8. #8
    potresti usare le interfacce....ma dipende cosa stai facendo....
    vedi così genericamente è un po' poco....
    magari le classi tra loro non c'azzeccano niente e stai scrivendo una cosa porcosa oppure sono correlate boh....

    così come chiedi posso solo rispondere sulla visibilità

  9. #9
    Sisi, la mia domanda era solo sulla visibilità
    Le interfacce non sono usabili per quello che ho intenzione di fare, comunque grazie lo stesso! Alla fine penso terrò il metodo della classe comune per le istanze e vedrò di sistemare un pò le classi con i packages!

    Grazie a tutti!
    Powered by Linux

    "Windows cerca di fare Unix e ci riesce male, Red Hat cerca di fare Windows e ci riesce benissimo" (Jimmy Olgeni)

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.