Metoda statyczna Java, zmienna i blok z przykładem

Spisie treści:

Anonim

Statyczny może być:

  1. Zmienne statyczne
  2. Metody statyczne
  3. Statyczne bloki kodu.

Przyjrzyjmy się najpierw zmiennym statycznym i metodom statycznym.

Co to jest zmienna statyczna w Javie?

Zmienna statyczna w Javie to zmienna należąca do klasy i inicjowana tylko raz na początku wykonania. Jest to zmienna należąca do klasy, a nie do obiektu (instancji). Zmienne statyczne są inicjowane tylko raz, na początku wykonywania. Te zmienne zostaną zainicjalizowane jako pierwsze, przed inicjalizacją jakichkolwiek zmiennych instancji.

  • Pojedyncza kopia do współużytkowania przez wszystkie instancje klasy
  • Dostęp do zmiennej statycznej można uzyskać bezpośrednio poprzez nazwę klasy i nie wymaga ona żadnego obiektu

Składnia:

< class-name>. 

Co to jest metoda statyczna w Javie?

Metoda statyczna w Javie to metoda należąca do klasy, a nie do obiektu. Metoda statyczna może uzyskać dostęp tylko do danych statycznych. Jest to metoda należąca do klasy, a nie do obiektu (instancji). Metoda statyczna może uzyskać dostęp tylko do danych statycznych. Nie ma dostępu do danych niestatycznych (zmiennych instancji).

  • Metoda statyczna może wywoływać tylko inne metody statyczne i nie może wywoływać z nich metody niestatycznej.
  • Dostęp do metody statycznej można uzyskać bezpośrednio poprzez nazwę klasy i nie wymaga ona żadnego obiektu
  • Metoda statyczna i tak nie może odwoływać się do słów kluczowych „this” lub „super”

Składnia:

< class-name>. 

Uwaga: główna metoda jest statyczna, ponieważ musi być dostępna, aby aplikacja mogła działać, zanim nastąpi jakakolwiek instancja.

Nauczmy się niuansów statycznych słów kluczowych, wykonując ćwiczenia!

Przykład: jak wywoływać statyczne zmienne i metody

Krok 1) Skopiuj poniższy kod do edytora

Demo klasy publicznej {public static void main (String args []) {Student s1 = nowy Student ();s1.showData ();Student s2 = nowy Student ();s2.showData ();//Student.b++;//s1.showData ();}}class Student {int a; // zainicjowany na zerostatic int b; // inicjowane do zera tylko wtedy, gdy klasa jest ładowana, a nie dla każdego utworzonego obiektu.Student(){// Konstruktor zwiększający zmienną statyczną bb ++;}public void showData () {System.out.println ("Wartość a =" + a);System.out.println ("Wartość b =" + b);}// public static void Increment () {// a ++;//}}

Krok 2) Zapisz i skompiluj kod. Uruchom kod jako, java Demo .
Krok 3) Oczekiwane wyniki przedstawiono poniżej


Poniższy diagram pokazuje, w jaki sposób tworzone są zmienne referencyjne i obiekty oraz jak różne instancje uzyskują dostęp do zmiennych statycznych.


Krok 4) Możliwe jest uzyskanie dostępu do zmiennej statycznej spoza klasy przy użyciu składni nazwaKlasy.nazwa_zmiennej . Odkomentuj wiersz nr 7 i 8. Zapisz, skompiluj i uruchom. Obserwuj wyjście.

Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3
Krok 5) Odkomentuj wiersz 25, 26 i 27. Zapisz, skompiluj i uruchom.
error: non-static variable a cannot be referenced from a static context a++;

Krok 6) Błąd =? Dzieje się tak, ponieważ nie jest możliwy dostęp do zmiennej instancji „ a ” ze statycznej metody klasy java „ inkrementacja ”.

Co to jest blok statyczny w Javie?

Statyczny blok to blok zestawienia wewnątrz klasy Java, który zostanie wykonany, gdy klasa jest najpierw ładowane do JVM. Blok statyczny pomaga zainicjować statycznych członków danych , podobnie jak konstruktorów pomoc zainicjować członków instancji.

class Test{static {//Code goes here}}

Poniższy program jest przykładem statycznego bloku java.

Przykład: jak uzyskać dostęp do bloku statycznego

Demo klasy publicznej {static int a;static int b;static {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Wartość a =" + a);System.out.println ("Wartość b =" + b);}}

otrzymasz następujące dane wyjściowe programu.

Value of a = 10Value of b = 20