2012-03-30 12 views

risposta

8

Generalmente i programmatori non hanno bisogno di dichiarare alcuna variabile all'interno di blocchi statici, di solito questo è solo per garantire l'inizializzazione di variabili statiche per l'uso da parte di tutte le istanze di classe (in base all'ambito della variabile statica).

Le variabili dichiarate all'interno di un blocco statico saranno locali a quel blocco proprio come i metodi e le variabili del costruttore.

JDK Docs

+0

"Generalmente i programmatori non hanno bisogno di dichiarare alcuna variabile all'interno di blocchi statici" >> Perché no? Se hai bisogno di oggetti temporanei per conservare i dati, avrai variabili nel blocco statico. Pensa a uno scenario quando devi istanziare un campo statico dopo aver fatto l'aritmetica e vuoi rendere il codice leggibile 'raggio float statico; area galleggiante statica; statico { flottante finale PI = 3,14f; area = (float) (PI * Math.pow (raggio, 2)); } ' – realPK

10

Le variabili dichiarate all'interno di un blocco sono accessibili solo all'interno di quel blocco. Statico o no

Le variabili dichiarate all'interno di un metodo statico sono statiche. Possono accedere solo ad altre variabili statiche o variabili globali.

+0

Ma a differenza di variabili locali C/C++ s ', quelle variabili non realmente 'andare fuori del campo di applicazione' dopo le viene eseguito il blocco, giusto? –

+2

L'ambito delle variabili in un blocco è il blocco. Dopo l'esecuzione, non hai modo di accedere a queste variabili. Questo è ciò che significa che le variabili escono dal campo di applicazione. Un blocco statico viene eseguito solo una volta, quindi non è possibile reinserirlo. In genere, si utilizza un blocco statico per inizializzare i campi statici nella classe quando la classe viene caricata e prima dell'esecuzione di qualsiasi costruttore. I campi statici hanno lo scopo che tu dai loro: pubblico, protetto da pacchetti, protetto, privato. –

4

sono come variabili di metodo. Accessibile solo nell'ambito del blocco.

0

No, non visibile al di fuori del blocco. Agiscono come variabili locali: pensate a un blocco statico come una funzione anonima che viene richiamata all'inizializzazione della classe. Non sono membri statici.

Problemi correlati