Różnica między końcowym a statycznym

Różnica między końcowym a statycznym

W matematyce i nauk ścisłych stała jest terminem oznaczającym określoną wartość, taką jak „π”, która jest praktyczną nazwą dla liczby 3.14159. Java ma swoje stałe. Są to zmienne, które poniżej (a) nie należą do żadnego obiektu, a sub (b) nie zmieniają ich wartości po ich ustawianiu. Słowo statyczne w deklaracji zmiennej pokazuje, że zmienna nie należy do żadnego obiektu. Istnieje podobne słowo kluczowe, które mówi, że wartość zmiennej zostanie ustawiona tylko raz i nie zmieni się. To jest ostateczne słowo kluczowe. To słowo kluczowe nie ogranicza się do zmiennych statycznych, ale może być używane ze zmiennymi instancji, zmiennymi lokalnymi, a nawet ze zmiennymi, które są metodami parametrów. Deklarując zmienną jako ostateczną, pokazujesz wszystkim, że zmienna podczas istnienia będzie miała tę samą wartość. Co ważniejsze, kompilator wykryje każdą próbę zmiany wartości zmiennej tak deklarowanej i zgłosi ją jako błąd. Jeśli chodzi o terminologię Java, zmienna deklarowana jako statyczna i końcowa nazywa się stałą.

Co jest ostateczne?

Ostateczny modyfikator może być używany w kilku miejscach w języku programowania Java. Tutaj omówimy jego najczęstsze użycie. Ostateczny modyfikator może być zastosowany do deklaracji zmiennej lokalnej, argumentu funkcyjnego i zmiennych członkowskich nietatycznych lub statycznych. W tym kontekście zmienna modyfikator przekształca się w stałą. Tłumacz języka tłumaczenia sprawdzi, czy jakiś kod próbuje zmodyfikować wartość, a takie próby zostaną oznaczone jako błąd. Oto przykład.

ostateczna wartość int = 17;

Zmienne statyczne z tym modyfikatorem są stosowane jako stałe globalne; na przykład w Javie.Lang.Zmienna matematyczna Pi, jest dokładnie określona

publiczne statyczne końcowe podwójne pi = 3.14159265358979323846;

Możemy zastosować ostateczny modyfikator do deklaracji funkcji. Funkcję oznaczoną finałową nie można już uchylić - to jest jej ostateczna implementacja. Metody abstrakcyjne nie można zadeklarować ostateczne - fakt, że są one abstrakcyjne, oznacza, że ​​brakuje im wdrożenia; Z pewnością nie może to być ich ostateczny stan. Oto przykład.

public final int sensLife ()

zwrot 42;

Możemy zastosować ostateczny modyfikator do deklaracji klasowej. Klasa oznaczona finałem nie może już dziedziczyć - to jest jej ostateczna implementacja. Oczywiście klasa abstrakcyjna nie może być jednocześnie ostateczna. Oto przykład

publiczna klasa końcowa zamknięta

//…

Jednym z przykładów klas skończonych jest Java.Lang.Klasa ciągów - jest skończona, więc nikt nie mógł go odziedziczyć, a tym samym uzyskać dostęp do zmiennych członków.

Co jest statyczne?

Zmienne statyczne nie należą do konkretnej instancji klasy. Zmienne statyczne należą do samej klasy i w pamięci jest tylko jedna lokalizacja, niezależnie od liczby kopii tej klasy, które są tworzone w pamięci. Zmienne nietatyczne należą do próbek klasy - każda instancja klasy ma swoją własną kopię takich zmiennych. Zmienne statyczne należą do klasy - klasa w pamięci utrzymuje wartości takich zmiennych; W związku z tym wszystkie przykładowe klasy widzą tę samą zawartość, abyśmy mogli rozważyć zmienne statyczne, które mają być udostępnione między wszystkimi rozmiarami klas. Aktualizując zmienną wartości, nowa wartość będzie automatycznie widoczna dla wszystkich instancji tej klasy. Filtr statyczny można zastosować do dowolnego elementu zadeklarowanego w ramach klasy. W przypadku zmiennych członkowskich konsekwencją jest to, że takie zmienne członkowskie będą przechowywane w pamięci tylko w jednym miejscu. Co się stanie, jeśli jest to metoda? Uzwierając metodę jako statyczną, wiadomość jest taka sama: odpowiednia metoda nie należy do klas klas, ale do samej klasy. W związku z tym metody statyczne nie otrzymają ukrytego odniesienia do obiektu, na którym są one wywoływane na wezwanie; W statycznych metodach referencyjnych jest to niedostępne. Rzeczywiście, wywołanie metod statycznych w obiekcie jest równie mylące, jak dostęp do statycznych zmiennych członków poprzez odniesienie do tego odniesienia: w obu przypadkach lepiej jest po prostu napisać nazwę klasy, punkt i nazwę metody wywołania.

Różnica między końcowym a statycznym

  1. Zmienny

Statyczny oznacza zmienną, która jest wspólna dla wszystkich obiektów, które tworzą instancję danej klasy, podczas gdy ostateczne określa stałą.

  1. metoda

STATIC to metoda taka sama dla każdego podanego obiektu - jest również nazywana członkiem klasy E.G. Taka jest główna metoda. Ostatecznej metody nie można przetworzyć w klasie odziedziczonej.

  1. Klasa

Finału nie można rozszerzyć i.mi. nie dopuszcza podklas. Static nie dotyczy klasy.

  1. Wartość

Mówiąc najprościej, ostatecznie oznaczał, że wartości nie można zmienić (zastępcza). Wartość statyczna jest ustawiona na wartość domyślną, ale można ją przywrócić.

Final vs. Statyczny: wykres porównawczy

Podsumowanie finałowych i statycznych

  • Kluczowa praca statyczna zapewnia dostęp, nawet jeśli nie ma obiektu (instancja). Wybitne zajęcia są zadeklarowane przez kluczowe słowo statyczne. Jeśli nie chcesz, aby wartość niektórych zmian w dalszej części programu poszła lub jeśli chcesz, aby kompilator sprawdził i zabrania, możesz zmienić tę obietnicę na ostateczną. Istnieje blok statyczny do inicjalizacji. Blok statyczny dla inicjalizacji jest deklarowany jako kluczowy statyczny przed nawiasami. Ten rodzaj bloku jest wykonywany raz, podczas czytania zajęć i zwykle inicjuje statyczne członków klasy.