Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50

    Utilizzare variabile di una classe in un'altra classe

    Salve,
    sono alle prime armi con Java.. vi espongo iil mio problema:

    Ho una classe chiamata MyClass1.java in cui utilizzo una certa variabile "var1".

    Il contenuto di questa variabile mi servirebbe anche all'interno di un'altra classe, sempre dello stesso package, chiamata MyClass2.java... come faccio?

    Ho provato a dichiarare in MyClass1.java, la variabile come "public static String var1="" "
    e in MyClass2.java poi richiamarla con MyClass1.var1, ma quello che ottengo è una stringa vuota, come dichiarato inizialmente, e non il contenuto effettivo di var1 che viene ottenuto in un metodo all'interno di MyClass1.
    Spero di essere stato chiaro,
    Grazie per le eventuali risposte
    Ciao,
    Luca

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Utilizzare variabile di una classe in un'altra classe

    Originariamente inviato da luca_87
    Ho una classe chiamata MyClass1.java in cui utilizzo una certa variabile "var1".

    Il contenuto di questa variabile mi servirebbe anche all'interno di un'altra classe, sempre dello stesso package, chiamata MyClass2.java... come faccio?
    Sono le solite questioni sul "design".
    La questione non è tanto farla "vedere" ma capire prima: a) Quale è il "significato" e il contesto di uso di tale variabile b) Quando e come deve essere usata c) Quale è la relazione tra la classe MyClass1 e MyClass2 (una istanzia l'altra e quindi ne ha un reference?)

    Cose di questo tipo. Ripeto è una questione di design delle classi.

    Originariamente inviato da luca_87
    Ho provato a dichiarare in MyClass1.java, la variabile come "public static String var1="" "
    Il solito design azzardato ... della serie "la metto public static e tutti lo vedono". No!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    Grazie per la risposta intanto,

    var1 è una variabile di tipo stringa contenente una data (uno degli attributi di un certo componente) che viene inizializzata in un metodo all'interno della classe MyClass1.

    La classe MyClass2 ha un metodo che stampa una tabella con tutti gli attributi di questo componente.. e uno di questi attributi deve essere proprio la stessa data ricavata nel metodo di MyClass1.

    In MyClass2 faccio "MyClass1 mc=new MyClass1();" ma non riesco comunque ad accedere alla variabile var1.

  4. #4
    Esempio:

    codice:
    class MyClass1
    {
          private String var1 = "";
          public Myclass1()          //costruttore
          {
                  var1 = ...            //modifico la data
          }
    
          public String getVar      //metodo che ritorna il valore della data
          {
                 return var1;
          }
    }
    
    class MyClass2
    {
          public static void main(String[]args)
          {
                 MyClass1 mc = new MyClass1();
                 String data = mc.getVar();
          }
    }

    Infine ricorda che String è un oggetto e non un valore primitivo quindi il passaggio byvalue non funziona, devi utilizzare un passaggio byreference altrimenti non modifichi la stringa!
    Saluti
    Ivan Hares

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.