Newsgroup: it.comp.java
Titolo: variabili

Ciao a tutti.
Vorrei creare delle variabili visibili in tutto il
package che ho creato.
Ho provato a renderle public nella classe che le definisco ma
non sono visibili nelle altre classi del package.
Dove sbaglio?
Grazie in anticipo.
Maurizio

Devi dichiararle di tipo Static.

Dove sbaglio?
Con
public sono visibili da tutti i package.
Per farle visibili alle sole
classi del package (e delle sottoclassi) devi usare protected.
Quello
che dici non può essere vero.
Chi ti dice che non sono visibili?
--------------------------------
Inviato via 
http://usenet.iol.it
 

Devi
dichiararle di tipo Static.
Non è assolutamente vero.
Le variabili
static sono variabili di classe, e questo non ha nulla a che vedere con la
possibilità si accesso di altre classi.


 Devi dichiararle di tipo Static.
Non è vero.


Invece, in parte è vero.
Dato un package puoi costruire una classe
che contiene degli attributi static che puoi
usare come variabili globali del package.
Dato che sono static non hai bisogno
di istanziare la classe.
Di mio non farei mai una cosa del genere, al limite
potrebbero essere usati come costanti.
package mio.package;
public class VariabiliGlobali {
    static public int variabileGlobale1;
    static protected int variabileGlobale2;
    static int variabileGlobale3;
    private VariabiliGlobali() {}
}
qualunque classe in mio.package può accedere alle variabili attraverso la
classe
VariabiliGlobali :
VariabiliGlobali.variabileGlobale1;
VariabiliGlobali.variabileGlobale2;
VariabiliGlobali.variabileGlobale3;
ciao

> Invece, in parte è vero.
Non diciamo fesserie.
Lui ha chiesto come dichiarare le variabili per farle essere visibili alle
classi dello stesso package.
Static identifica una variabile di classe e basta, e nulla ha a che vedere
con la visibilità.
Per ottenere il suo scopo deve usare protected che rende visibile la
variabile alle classi del package e anche alle sottoclassi.
Public lo rendo visibili a tutte le classi in genere.

 classi dello stesso package.
Se leggi quello che ha scritto Maurizio noterai che ha definito le sue
variabili
publiche, quindi visibili ovunque. Serve però un'istanza della classe in cui
le ha dichiarate, e sarebbero comunque attributi dell'istanza. Se le dichiari
static
in una classe a parte, che ha il solo scopo di contenere le variabili sono
visibili e
accessibili direttamente in tutto il package e sono disponibili dal load della
classe.
Non è molto OOP ma lo si può fare.
A me sembra che il post di Maurizio chiedesse questo, magari ho capito male.
ciao

classe.
Allora prova ad usare 
private static var;
e vediamo se sono
ancora visibili.
La visibilità non è legata allo static ma
public/protected/private/(no modifier).
Tutto il resto viene dopo e ci si
può costruire sopra quanto vuoi.


Ciao a tutti.
Vorrei per prima cosa ringraziare tutti per l'aiuto.
Non volevo creare, se e' successo, una disputa dialettica.
La mia domanda era del tipo: come faccio ad definire delle
variabili che poi saranno visibili in tutto il package, senza creare
una nuova istanza della classe in cui sono definite?
E' brutto dal punto di vista oop, ma mi serviva per evitare tanti
passaggi di parametri nella creazione della classe in cui non sono definite
le variabili che vorrei visibili in tutto il package.
Perche' questo? Perche' ho come parametri del mio applet informazioni
tipo username, nome odbc che non vorrei passare da una classe ad un'altra.
Credo pero' che la soluzione migliore sia una classe che incapsula questi
dati e la richiamo ogni volta che mi serve: sbaglio????
Grazie ancora.
Ciao


Grazie ancora.
Quello che devi fare č passare l'istanza della classe e non le variabili.
All'interno della classe in questione le variabili devono essere private
con i relativi metodi di getter and setter di tipo protected.


 ancora visibili.
Se noti l'esempio che ho fatto ho dichearato le variabili
public, protected e "default".
Comunque non mi pare il caso di annoiare con queste discussioni.
ciao

 dati e la richiamo ogni volta che mi serve: sbaglio????
Non saprei, dipende cosa devi fare. Certo potresti racchiudere i
dati che ricevi in una classe, istanziarla al momento opportuno
e quindi passare l'istanza. Mi pare più bello e meno rischioso.
ciao

 sbaglio???? 
..oppure crei un'astrazione con un nome descrittivo (tipo
"UtenteConnesso") che le contenga, e ne crei un'istanza ogni volta. 
Per motivi di performance si possono usare cose come buffer globali
eccetera anche in OO, ma lo si deve fare a ragion veduta. 
-- 
Life's something u don't get out alive..
ObjectZone - 
http://space.tin.it/computer/csadun


Pensa alla class java.lang.System che ha i metodi statici 
"getProperties()" e "getPorperty()".
Pensa anche alla classe java.util.Properties
Secondo me questa è una buona strada.
Gli che ne dicono?