Końcowy i statyczny

Anonim

W matematyce i nauce stała to termin oznaczający pewną wartość, taką jak "π", która jest praktyczną nazwą dla liczby 3.14159. Java ma swego rodzaju stałe. Są to zmienne, które pod (a) nie należą do żadnego obiektu, a sub (b) nie zmieniają ich wartości, gdy zostaną ustawione. Statyczne słowo 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 jest ograniczone 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 tak zadeklarowanej zmiennej i zgłosi ją jako błąd. Jeśli chodzi o terminologię Java, zmienna zadeklarowana jako statyczna i końcowa nazywana jest stałą.

Co to jest wersja ostateczna?

Ostateczny modyfikator może być używany w kilku miejscach w języku programowania Java. Tutaj omówimy jego najczęstsze zastosowanie. Ostateczny modyfikator można zastosować do deklaracji zmiennej lokalnej, argumentu funkcji oraz niestatycznych lub statycznych zmiennych składowych. W tym kontekście modyfikator zmiennej przekształca się w stałą. Tłumacz języka obcego sprawdzi, czy jakiś kod próbuje zmodyfikować wartość, a takie próby zostaną oznaczone jako błąd. Oto przykład.

końcowa wartość int = 17;

Statyczne zmienne składowe z tym modyfikatorem są używane jako stałe globalne; na przykład w zmiennej java.lang.Math PI jest dokładnie określona

publiczny statyczny finał podwójny PI = 3,14159265358979323846;

Możemy zastosować ostateczny modyfikator do deklaracji funkcji. Funkcja oznaczona końcem nie może być już unieważniona - to jest jej ostateczna realizacja. Metody abstrakcyjne nie mogą zostać uznane za ostateczne - fakt, że są one abstrakcyjne oznacza, że ​​brakuje im realizacji; to na pewno nie może być ich ostateczny stan. Oto przykład.

publiczny ostateczny int meaningLife () {

powrót 42;

}

Możemy zastosować ostateczny modyfikator do deklaracji klasy. Klasa oznaczona końcem nie może już dziedziczyć - jest to jej ostateczna implementacja. Oczywiście, klasa abstrakcyjna nie może być ostateczna w tym samym czasie. Oto przykład

publiczna klasa końcowa Closed {

// …

}

Jednym z przykładów klasy skończonej jest klasa java.lang.String - jest skończona, więc nikt nie może jej dziedziczyć, a tym samym uzyskać dostępu do jej zmiennych członkowskich.

Co to jest statyczny?

Zmienne statyczne nie należą do konkretnej instancji klasy. Zmienne statyczne należą do samej klasy, aw pamięci istnieje tylko jedno miejsce, niezależnie od liczby kopii tej klasy, które są tworzone w pamięci. Zmienne niestatyczne należą do próbek klas - każda instancja klasy ma własną kopię takich zmiennych. Zmienne statyczne należą do klasy - klasa w pamięci zachowuje wartości takich zmiennych; wszystkie klasy przykładowe widzą więc tę samą treść, abyśmy mogli uwzględnić zmienne statyczne, które mają być dzielone między wszystkimi rozmiarami klas. Po zaktualizowaniu zmiennej wartości nowa wartość będzie automatycznie widoczna dla wszystkich wystąpień tej klasy. Filtr statyczny może być zastosowany do dowolnego elementu prawnie zadeklarowanego w klasie. W przypadku zmiennych członkowskich, konsekwencją jest to, że takie zmienne składowe będą przechowywane w pamięci tylko w jednym miejscu. Co się stanie, jeśli będzie to metoda? Określając metodę jako statyczną, komunikat jest taki sam: odpowiednia metoda nie należy do klas klas, ale do samej klasy. W związku z tym statyczne metody nie otrzymają ukrytego odniesienia do obiektu, nad którym są wywoływane podczas połączenia; w statycznych metodach odniesienia jest to niedostępne. Rzeczywiście, wywoływanie metod statycznych w obiekcie jest równie mylące, jak uzyskiwanie dostępu do statycznych zmiennych składowych przez odniesienie do tego odniesienia: w obu przypadkach lepiej jest po prostu zapisać nazwę klasy, punkt i nazwę wywołującej metody.

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

  1. Zmienna

Statyczny oznacza zmienną, która jest wspólna dla wszystkich obiektów, które tworzą instancję klasy, a końcowa definiuje stałą.

  1. metoda

Statyczna jest metodą, która jest taka sama dla każdego obiektu danej klasy - jest również nazywana członkiem klasy np. taka jest główna metoda. Ostateczna metoda nie może być przetwarzana w odziedziczonej klasie.

  1. Klasa

Ostatecznego nie można rozwinąć, tzn. Nie pozwala na podklasy. Statyczny nie dotyczy klasy.

  1. Wartość

Mówiąc prościej, finał oznaczał, że wartości nie można zmienić (przesłonić). Wartość statyczna jest ustawiona na wartość domyślną, ale można ją ponownie zainicjować.

Final vs. Static: Tabela porównawcza

Podsumowanie ostatecznego i statycznego

  • Kluczowa statystyka pracy zapewnia dostęp nawet wtedy, gdy nie ma obiektu (instancji). Wybitne klasy deklarowane są za pomocą słowa kluczowego static. Jeśli nie chcesz, aby wartość niektórych zmian w późniejszym programie została przekroczona lub jeśli chcesz, aby kompilator sprawdzał i zabraniał, możesz zmienić tę obietnicę na ostateczną. Istnieje blok statyczny do inicjalizacji. Blok statyczny do inicjalizacji jest zadeklarowany jako klucz statyczny przed nawiasami.Ten rodzaj bloku jest wykonywany raz, podczas czytania klas i zazwyczaj inicjuje statyczne elementy klasy.