Newsgroup: it.comp.java
Titolo: variabili pubbliche

 
  GregorianCalendar dataAttuale=new GregorianCalendar();
         int passanno = dataAttuale.get(GregorianCalendar.YEAR);
 
Vorrei che la variabile--> passanno
fosse visibile in qualsiasi Javaform, in VB6 collocavo il codice in un 
modulo.
In Java dove devo collocare il codice su scritto per ottenere lo stesso 
risultato?
 
 
-- 
Gulp®
(forse mi sono perso qualcosa :))


Dichiari la variabile statica cosi':
class Miaclasse {
public final static int
  PASSANNO = GregorianCalendar.getInstance().get(GregorianCalendar.YEAR);
...
 
poi la utilizzi in modo statico cosi':
 
int anno = Miaclasse.PASSANNO;

   PASSANNO = GregorianCalendar.getInstance().get(GregorianCalendar.YEAR);
 
beh questa non è una variabile.

 beh questa non è una variabile.
Quindi? Puoi aggiungere qualcosa? Grazie

 Quindi? Puoi aggiungere qualcosa? Grazie
 
facevo notare che così ha creato una costante, non una variabile.
che altro c'è da aggiungere?

 che altro c'č da aggiungere?
?
Una costante mantiene, come dice il suo none, sempre lo stesso valore, 
"passanno" č una variabile in quanto anche se con cadenza annuale cambia 
il proprio valore. Cosa c'č di costante in questo?


'public final static int' definisce inequivocabilmente una costante in
java. mi spiace. se ti aspetti che 'passanno' venga aggiornata con l'anno
corrente stai prendendo una sonora cantonata: viene inizializzata
alla partenza del programma e quel valore rimane finché non termina il
medesimo.
 

Il 21/03/15 18.35, rootkit ha scritto:
 
  'public final static int' definisce inequivocabilmente una costante in 
java. mi spiace. se ti aspetti che 'passanno' venga aggiornata con 
l'anno corrente stai prendendo una sonora cantonata: viene inizializzata 
alla partenza del programma e quel valore rimane finché non termina il 
medesimo.
 
Allora mi dici che
 
  GregorianCalendar.getInstance().get(GregorianCalendar.YEAR)
 
mi darà come valore 2015 anche dopo il primo gennaio del prossimo anno?
 


no non dico nulla del genere. per favore leggi con più attenzione quello
che ti viene scritto perché la gente non ha più di tanto tempo da 
dedicarti.
 
 

Il 21/03/15 22.00, rootkit ha scritto:
 
  no non dico nulla del genere. per favore leggi con più attenzione 
quello che ti viene scritto perché la gente non ha più di tanto tempo da 
dedicarti.
 
Mi spiace se ho impegnato tempo ad altri.
Ti ringrazio, comunque io ho letto molto attentamente ciò che hai 
scritto e son sicuro che altrettanto ha fatto il Dott.UgoGagliardelli 
quando mi ha risposto, infatti il risultato di passanno sarà quello che  
mi aspettavo, sia esso definito come costante o (da me) erroneamente 
come variabile.
E' giusto che ciascuno risponda o meno su questo ng in base ai propri 
impegni, ringrazio quindi entrambi per i chiarimenti ed il tepo dedicatomi.
 


Vero, ma nel caso proposto ho intuito che potesse volerla usare come 
fosse una costante, ovvero un valore non modificabile.
Se invece volesse anche modificarne il valore, basterebbe togliere il 
modificatore final.
 


Non proprio. GregorianCalendar.getInstance() restituisce un Calendar che 
rappresenta la data attuale. Per cui se lanci il programma nel 2015 e lo 
lasci attivo fino all'anno prossimo, allora il valore rimarra' costante. 
In ogni caso, ogni volta che lanci il programma 
GregorianCalendar.getInstance().get(GregorianCalendar.YEAR) restituira' 
l'anno corrente.

 restituira' l'anno corrente.
 
Era chiarissimo ed era ciò che cercavo. Una app desktop non resta attiva 
un anno.
Grazie per la disponibilità.