Słowo kluczowe static w Javie
W poprzedniej części przyjrzeliśmy się modyfikatorom dostępu i pakietom.
Słowo kluczowe static
Modyfikator static pojawiał się już wiele razy w naszych wcześniejszych programach. Po krótce wspomnieliśmy o istnieniu metod statycznych we wpisie dotyczącym metod. Wielokrotnie pojawiała się także w metodzie main. Podobnie jak w przypadku modyfikatorów dostępu static możemy zastosować także do pól.
Pola statyczne
Czym się różni zwykłe pole od statycznego? Główną różnicą jest to, że pole należy do całej klasy, a nie konkretnego obiektu. Innymi słowy gdy utworzymy 10 obiektów, to pola niestatyczne mogą mieć inny stan lub wartość, a pola statyczne są identyczne, gdyż należą do klasy (nawet gdy nie istnieje żadnej obiekt danej klasy, to można odwołać się do pola statycznego).
Dobrym przykładem zastosowani pól statycznych są różnego rodzaju stałe matematyczne. Zgodnie z dokumentacją klasa Math
posiada dwa pola statyczne.
1 2 |
public static final double E – podstawa logarytmu naturalnego public static final double PI – liczba Pi |
Dostęp do nich możliwy jest wpisując bezpośrednio nazwę klasy i pole.
1 2 |
Math.E Math.PI |
Możemy również utworzyć własną klasę, w której wykorzystamy stałe statyczne (dla przypomnienia należące do całej klasy, a nie konkretnego obiektu). Wyobraźmy sobie, że nasza klasa będzie opisywała różnego rodzaju zegary w sklepie. Mimo ogromnej różnorodności towaru (budzik czy na rękę, cyfrowy czy analogowy, sportowy z funkcją stopera czy elegancki pasujący na wyszukane okazje) łączy je jedna cecha – wszystkie powinny tak samo odmierzać czas. W związku z tym możemy zadeklarować takie stałe jak liczba godzin na dobę, liczba minut na godzinę oraz liczbę sekund na minutę.
1 2 3 4 5 6 |
public class Zegar{ public static final int DOBA = 24 public static final int MIN_W_GODZ = 60 public static final int SEK_W_MIN = 60 … } |
Metody statyczne
Podobnie jak w przypadku pól, tak i metody działają nie na konkretnym egzemplarzu klasy. W związku z tym aby uruchomić metodę nie ma potrzeby aby tworzyć obiekt, a wystarczy odwołać się do klasy, z której chcemy wywołać metodę, a następnie podać jej nazwę. Do pokazania przykładu ponownie skorzystamy z klasy Math
.
1 |
Math.sin(Math.PI) //wykorzystaliśmy stałą Pi ponieważ argumentem funkcji sinus jest miara kąta podana w radianach |
Warto wiedzieć, że metodę statyczną można wywołać korzystając z obiektu, ale nie jest to prawidłowa praktyka gdyż nie wpływamy w ten sposób na jego stan.
Metoda main
Statyczna metoda main()
służy do przetwarzania danych w programie. Dzięki temu, że jest statyczna do jej działania nie jest potrzebny żaden obiekt. W skrócie można uznać, że to właśnie w metodzie main()
zaczyna się nasz program. Jej brak zostanie natychmiast zauważony przez kompilator, który zwróci odpowiedni komunikat.
Metoda main w kilku klasach
Metodę main()
możemy napisać w każdej klasie wchodzącej w skład pakietu. Może to być przydatne w przypadku gdy chcemy przetestować konkretną klasę i jej działanie. Jak jednak rozróżnić, która metoda main()
jest tą, która powinna być używana? W przypadku gdy kompilujemy programy z wiersza poleceń należy użyć polecenia:
1 |
Java Klasa |
Jeżeli korzystamy z IDE Eclipse możemy ustawić główną klasę w parametrach uruchomienia programu.
Parametry metody main
Metoda main()
ma następującą składnię:
1 2 3 |
Public static void main(String[] args){ ... } |
Jak widać do funkcji main()
przekazywana jest tablica łańcuchów znakowych String
o nazwie args. Dostęp do niej jest prosty gdyż tak jak w przypadku każdej innej tablicy należy napisać jej nazwę oraz indeks:
1 |
String s = args[0]; //dostęp do pierwszego argumentu |
Aby przekonać się jak dokładnie działa przekazywanie argumentów skorzystamy z prostego programu.
1 2 3 4 5 6 |
public class Main { public static void main(String[] args) { for(String s : args) System.out.print(s); } } |
Ponownie można skorzystać z kompilacji z wiersza poleceń:
1 |
Java Main test przekazywania argumentów |
lub wpisać ten sam argument w parametrach uruchomienia Eclipse. Efektem uruchomienia programu będzie wypisanie w konsoli wszystkich argumentów.
Ustawianie parametrów w Eclipse
Aby ustawić parametry uruchomienia w Eclipse należy kliknąć w menu na run,a następnie na Run configuration.

Następnie z okienka po lewej stronie wybrać klasę, w której znajduje się metoda main()
, w okienku po prawej w zakładce arguments wpisać argumenty, które chcemy przekazać do programu.

W następnej części pokażemy podstawowe metody obsługi wejścia i wyjścia.