Modyfikatory static i final

Static

Słowo kluczowe static służy do oznaczania pół lub metod jako statyczne. Umożliwia to odwoływanie się do nich bez potrzeby tworzenia instancji klasy.

Przykładowy kod:

class StaticX {
static int x = 1024;

static int returnX() {
return x;
}
}

public class Test {
public static void main(String args[]) {
System.out.println("Wartość zmiennej x: "+StaticX.x);
System.out.println("Wynik statycznej metody zwracającej x: "+StaticX.returnX());
}
}

By odwołać się do elementu statycznego należy poprzedzić jego nazwę klasą w której się znajduje.
Zmienne static zachowują się jak zmienne globalne – zmiana ich wartości nie powoduje utworzenia  kopii zmiennej. Wszystkie utworzone obiekty operują na jednym egzemplarzu statycznej zmiennej.

Metody zadeklarowane jako statyczne mogą bezpośrednio wywoływać tylko inne statyczne metody oraz mogą używać tylko statycznych pól.

Blok static
Java umożliwia oznaczenie całego bloku kodu jako statyczne, dzięki czemu kod wykonuje się do razu po załadowaniu klasy (wciąż bez potrzeby tworzenia instancji danej klasy).

static {
statyczny
blok
kodu
}


Final

Modyfikator final służy do oznaczania metod lub pól jako finalne(niezmienne). Wartość takiej zmiennej można przypisać tylko raz co z reguły ma miejsce podczas jej deklaracji.
W przypadku gdy zmienna wskazuje na obiekt, finalna jest jedynie wartość referencji a nie sam obiekt do którego się odnosi.
Zadeklarowanie metody jako finalnej wiąże się z tym że nie ma możliwości przesłonięcia takiej metody w klasach potomnych co niweluje ryzyko, że ktoś zmieni jej implementację na własną.


class FinalTest {
final double PI = 3.141;

final double returnPI() {
return PI;
}
}

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *