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

    [JAVA] Visibilità di variabili tra Classi e Package

    Salve a Tutti, Buona Pasqua.
    Prima di esporvi il quesito, ho letto tanta documentazione trovata in rete e purtroppo sembra he non ci sia una soluzione "snella" al problema. Comunque ve lo espongo in poche parole.
    Ho una Classe nel "Default Package" dove dichiaro più variabili "globale":
    codice:
    import java.util.*;
    import utility.*;
    
    public class MainClass {
    
    	//DICHIARAZION VARIABILI& ISTANZE
    	public static Date dataOdierna = new Date();
    	public static Calendar calendario = new GregorianCalendar();
    	public static int ore = calendario.get(Calendar.HOUR_OF_DAY);
    	public static int minuti = calendario.get(Calendar.MINUTE);
    	public static int secondi = calendario.get(Calendar.SECOND);
    	public static int giorno = calendario.get(Calendar.DAY_OF_MONTH);
    	public static int mese = calendario.get(Calendar.MONTH);
    	public static int anno = calendario.get(Calendar.YEAR);
    
    	public static void main(String[] args) {
                      System.out.println(giorno+"/"+mese+"/"+anno);
                     ...........
            }
    }
    ...e un altra Classe nel Package Utility:
    codice:
    package utility;
    
    public class ProvaClass {
            public ProvaClass() {
                    System.out.println(giorno+"/"+mese+"/"+anno);
            }
    }
    Non vi è modo di rendere la variabili visibili tra le classi!?
    Visto che le Classi che dovrebbero utilizzare queste variabili sono tante!!!

    Grazie per l'attenzione..... Felice Pasqua

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La prima cosa da imparare e' che Java != JavaScript

    Ti sposto
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    codice:
    package utility; public class ProvaClass { public ProvaClass() { System.out.println(MainClass.giorno+"/"+MainClass.mese+"/"+MainClass.anno); } }
    L'unica soluzione è questa, ho visto che hai messo il modificatore public nella classe MainClass, siccome le due classi non stanno nello stesso package devi accedere tramite il nome della classe, anche se ti consiglio di creare una classe instanziabile usando la classe GregorianCalendar di java per avere una gestione dinamica delle date. In pratica affronta il problema con l'approccio agli oggetti .

  4. #4
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Ci puoi accedere chiamando il nome della classe.
    Ad esempio:

    codice:
    MainClass.minuti=5;

  5. #5
    Grazie a Tutti per l'attenzione prestatami.
    Mi scuso con br1 per aver sbagliato sezione del forum.

    Dunque ho provato ad accedere chiamando il nome della classe come suggeritomi, ma il compilatore mi da sempre errore, dicendomi di creare la Classe MainClass!!!

    @nicobellic: Non ho ben afferato cosa mi suggerisci, Ti chiedo scusa ma ancora non riesco ad afferrare bene il concetto di "programmazione ad oggetti", benchè abbia letto svariati documenti trovati sul web!!

  6. #6
    Per ora ho risolto così:
    codice:
    package utility;
    
    public class ProvaClass {
            public ProvaClass() {
                    FileOutputStream fos = new FileOutputStream("log\\LOG_CFS_("
                                           +new GregorianCalendar().get(Calendar.DAY_OF_MONTH)
                                           +"-"+new GregorianCalendar().get(Calendar.MONTH)
                                           +"-"+new GregorianCalendar().get(Calendar.YEAR)
                                           +"_"+newGregorianCalendar().get(Calendar.HOUR_OF_DAY)	 
                                           +"#"+new GregorianCalendar().get(Calendar.MINUTE)
                                           +").log");
            }
    }
    Ma il "problema" va capito e risolto, perché potrò aver bisogno di variabili lette da più di una classe e in package diversi!!

    Sempre grazie per l'attenzione

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.