2012-03-30 12 views

Odpowiedz

8

Ogólnie rzecz biorąc programiści nie muszą zadeklarować żadnych zmiennych w blokach statycznych, zwykle jest to tylko w celu zapewnienia inicjalizacji zmiennych statycznych do użycia przez wszystkie wystąpienia klasy (w zależności od zakresu zmiennej statycznej).

Zmienne zadeklarowane w bloku statycznym będą lokalne dla tego bloku, podobnie jak zmienne metod i konstruktorów.

JDK Docs

+0

"Generalnie programiści nie muszą zadeklarować żadnych zmiennych w blokach statycznych" >> Dlaczego nie? Jeśli potrzebujesz tymczasowych obiektów do przechowywania danych, będziesz mieć zmienne w bloku statycznym. Pomyśl o scenariuszu, w którym musisz utworzyć instancję statyczną po wykonaniu arytmetycznej operacji i chcesz, aby kod był czytelny 'statyczny promień pływalności; obszar statyczny; static { końcowy wskaźnik PI = 3,14f; area = (float) (PI * Math.pow (radius, 2)); } ' – realPK

10

Zmienne zadeklarowane wewnątrz bloku są dostępne tylko wewnątrz tego bloku. Statyczny lub nie.

Zmienne zadeklarowane w statycznej metodzie są statyczne. Mogą uzyskać dostęp tylko do innych zmiennych statycznych lub zmiennych globalnych.

+0

Ale w przeciwieństwie do zmiennych lokalnych C/C++ 's, zmienne te nie naprawdę "go poza zakresem" po tych sporządzi blokowych, prawda? –

+2

Zakres zmiennych w bloku to blok. Po jego wykonaniu nie masz dostępu do tych zmiennych. To oznacza, że ​​zmienne wykraczają poza zakres. Statyczny blok wykonuje się tylko raz, więc nie ma możliwości ponownego wejścia do niego. Zazwyczaj używa się bloku statycznego do inicjowania pól statycznych w klasie, gdy klasa jest ładowana i przed uruchomieniem dowolnego konstruktora. Pola statyczne mają zakres, który im dajesz: publiczny, pakiet chroniony, chroniony, prywatny. –

4

Są one podobne do zmiennych metod. Dostępne tylko w zakresie bloku.

0

Nie, niewidoczny poza blokiem. Działają one jak zmienne lokalne - pomyśl o blokowaniu statycznym jako anonimowej funkcji wywoływanej podczas inicjowania klasy. Nie są statycznymi członkami.

Powiązane problemy