Aktywne Wpisy
Opas +261
Niektórzy przeżywają jak odchodzi ich pies czy kot, a ja… przeżywam króla mojego akwarium Suma. Wczoraj zauważyłem że on trafił tęczowym mostem do krainy Posejdona. Był ze mną 28 lat…, dostałem go w pierwszej lub drugiej klasie podstawówki, przeżył kilka wyskoków, podsuszeń, pogryzienie przez pierwszego psa, błędy akwarystyczne, choroby, nawet wakacje u babci. Śmiałem się że córka w spadku go odziedziczy, ale nie będzie jej to dane :( W trakcie ostatniego serwisu
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Rozumiem, że zmienna oznaczona jako static final jest niemodyfikowalna po pierwszej inicjalizacji, która musi nastąpić podczas definicji zmiennej lub w konstruktorze klasy tak?
Zmienne oznacza się jako static final po to, żeby każdy obiekt danej klasy, w której jest zadeklarowana taka zmienna współdzielił jedną zmienną, która jest niemodyfikowalna? (bo gdyby była oznaczona jako final to każdy obiekt będący instancją klasy miałby swoją "wersję" tej zmiennej)
Coś jeszcze może być odpowiedzią na takie pytanie?
#java
Np. jak byś pisał klasę
Math
i chciał w niej umieścić liczbę pi żeby inny kod mógł się łatwo do niej dostać, to zapewne zdefiniował byś w niejpublic static final PI = 3.14..........;
i miał byś wtedy po prostu stałą, do której możesz się łatwo odwołać (Math.PI
)@youlife007: finalne statyczne pole inicjalizowane w konstruktorze?
@Myzreal: Hehs, też mu pisałem przykład na bazie PI
Komentarz usunięty przez moderatora
@youlife007: Można jeszcze dodać, że pozwala to na dodatkową optymalizację podczas kompilacji w przypadku, gdy masz stałą statyczną w postaci literału np liczbowego. W takim przypadku, podczas kompilacji użycie stałej jest podmieniane na ten właśnie literał.