Pierwszy program w Javie (cz. 2)

W poprzednim wpisie napisaliśmy razem nasz pierwszy program w Javie. Użyliśmy w tym celu najprostszych możliwych narzędzi, czyli notatnika oraz konsoli. Zanim przejdziemy do zapoznania się ze zintegrowanym środowiskiem developerskim, jakim jest Eclipse IDE, przeanalizujmy dokładnie kod pierwszego programu.

Poniżej dla przypomnienia znajduje się jego listing:

Właśnie poznałeś kod najprostszego możliwego programu, który de facto „coś” robi. W naszym przypadku program wypisuje tekst na ekranie. Zajmijmy się teraz analizą jego kodu źródłowego.

Zauważ że linie programu kończą się średnikiem lub klamrą {} (otwierającą bądź zamykającą). Klamry definiują bloki kodu. W naszym prostym przykładzie mamy tylko dwa bloki. Jeden definiuje klasę, drugi metodę main. Oprócz tego bloki wykorzystywane są w instrukcjach warunkowych oraz pętlach… ale o tym będzie już w innych wpisach.

W pierwszej linii znajduje się deklaracja pakietu. Pakietom poświęcę osobny wpis. Jedyne co aktualnie musisz wiedzieć o deklaracji pakietu to, to że:

  • rozpoczyna się słowem kluczowym package,
  • zawsze znajduje się w pierwszej linii pliku źródłowego,
  • przekłada się na strukturę katalogów (tj. deklaracja package pl.naukajava; oznacza że plik źródłowy jak i class znajdują się w katalogu pl/naukajava).

W następnej linii znajduje się deklaracja klasy. Rozpoczyna się ona modyfikatorem dostępu public. Później jest słowo kluczowe class deklarujące klasę. Następnie występuje sama nazwa klasy oraz otwarcie „ciała klasy”. Nazwa klasy musi być taka sama jak nazwa pliku w którym się znajduje (oczywiście pomijając końcówkę .java). Wielkość znaków ma znaczenie. Więc „PierwszyProgram” to nie to samo co „pierwszyprogram”, obie nazwy muszą być identyczne.

W linii czwartej deklarujemy statyczną metodę main. Deklaracja ponownie rozpoczyna się od modyfikatora dostępu public. Później znajduje się słowo kluczowe static. Na kolejnej pozycji znajduje się deklaracja zwracanego typu (czyli „opis” efektu wykonania metody). W naszym przykładzie użyliśmy w tym miejscu słowa kluczowego void oznaczającego, że metoda ta zwraca „nic”. W końcu dochodzimy do samej nazwy metody, w naszym przypadku jest to main. Na samym końcu w nawiasach okrągłych () znajduje się lista parametrów.

Zapis main(String[] arg) oznacza, że metoda main przyjmuje tylko jeden parametr typu String[]. Dlaczego tylko jeden? Jeden, bo w nawiasach () znajduje się tylko jedna para, nazwa_typu nazwa_zmiennej. Może dziwi ciebie występowanie nawiasów kwadratowych [] tuż za deklaracją typu String, otóż w takim wypadku jest to tablica obiektów typu String.

Ostatnim elementem w tej linii jest otwarcie bloku metody. W żargonie programistycznym „blok metody” nazywany się ciałem metody i tej nazwy będę dalej używał.

Dopiero w linii szóstej, znajduje się prawdziwy kod programu. Wszystko to co opisałem Tobie do tej pory jest wymagane żeby program się w ogóle uruchomił. Natomiast to co jest w ciele metody main to jest właściwy program.

Więc co znajduje się w ciele naszego programu? Znajduje się tylko jedno wywołanie: System.out.println(“To jest pierwszy program w Javie”);. Jak się pewnie już domyślasz to dzięki niemu tekst: “To jest pierwszy program w Javie”, zostanie wypisany na ekranie. Podobnie jak przy deklaracji metody, rzeczy pomiędzy nawiasami okrągłymi (), nazywane są parametrami. Żeby nie było to dla Ciebie magią, to jest to wywołanie metody statycznej (później opowiem Tobie co to dokładnie znaczy) o nazwie println na statycznej właściwości out, obiektu System. Teraz możliwe, że brzmi to jeszcze bardziej tajemniczo… nie przejmuj się, wszystko wyjaśnię Tobie w trakcie trwania tego kursu. Jednakże im szybciej przywykniesz do stosowanego słownictwa tym lepiej :).

Programowanie w Java właśnie polega na wywoływaniu metod z innych obiektów. Część z tych metod będzie pochodziła z biblioteki standardowej, część z bibliotek zewnętrznych oraz część będzie wywołaniem metod które zostały napisane przez Ciebie.

Pewnie zastanawiasz się co to jest biblioteka standardowa, jest to zestaw klas oraz metod które przychodzą razem ze środowiskiem deweloperskim (JDK). Między innymi cały obiekt System wchodzi w skład biblioteki standardowej. Java przychodzi z bardzo rozbudowaną biblioteką standardową. Część z jej elementów poznasz w czasie tego kursu. Pozostałą część pewnie poznasz w czasie swojej praktyki.

Jednak biblioteka standardowa to nie wszystko. Najlepszymi programistami nie są osoby które piszą wszystko własnoręcznie, tylko te które potrafią łączyć efekty pracy innych. Dobry programista zna (lub wie jak szybko znaleźć) bibliotekę zewnętrzną która ułatwi mu rozwiązanie aktualnego zadania. W czasie kursu dowiesz się jak dołączać biblioteki zewnętrzne do swojego programu, jak je znajdować oraz jak się ich uczyć.

Ostatnie dwie linie aplikacji to są domknięcia bloków kodu. Każdy otwarty blok kodu musi zostać zamknięty, w przeciwnym wypadku kompilator zgłosi błąd kompilacji. Nie możesz po prostu pominąć tych linii. Są one tak samo ważne jak inne linie w kodzie programu.

Przeanalizowaliśmy cały pierwszy program. Mimo że jest to tylko kilka linii kodu to widzisz ile za nimi kryje się logiki oraz wiedzy. Głównym zadaniem tego kursu jest przekazanie Tobie tej wiedzy w prosty i przyjazny sposób. Teraz skupimy się na tym żebyś poznał zasady działania oraz nauczył się programować tj. tworzyć algorytmy. Na początku jeszcze bez całej obiektowej otoczki. Ale zanim do tego przejdziemy, warto poznać zasady działania tego programu.

Jak to działa?

No właśnie, jak działa nasz pierwszy program w Javie? Dlaczego metoda musi się nazywać main, żeby program zadziałał? Dlaczego musi mieć jeden parametr typu String[]? Dlaczego musi być statyczna?

Na te wszystkie pytania jest jedna odpowiedź: taka jest konwencja. Twórcy języka Java tak właśnie wymyślili i tak to już jest. Nie da się tego zmienić.

Kiedy uruchamiasz program poleceniem java, w parametrze przekazujesz nazwę klasy która zawiera właśnie magiczne: public static void main(String[] arg). Jeżeli podasz jakąś inną klasę która nie zawiera metody main (lub jest ona błędnie zdeklarowana np. bez parametru String[]) wtedy program się w ogóle nie uruchomi. Dostaniesz błąd informujący o tym, że wskazana klasa nie zwiera metody main. Niestety tego nie da się w żaden sposób obejść. Metoda która rozpoczyna działanie programu zawsze jest publiczna, statyczna, nie zwracająca żadnego rezultatu, z jednym parametrem typu String[] oraz nazywająca się main.

W czasie swojej przygody z programowaniem znajdziesz wiele konwencji. Jedne z nich są twarde (jak na przykład wspomniana metoda main) inne z nich są miękkie. Twardych konwencji nie da się złamać. Jeżeli się do nich nie dostosujesz twój program po prostu nie będzie działał poprawnie.

Podsumowanie

W tym wpisie przeanalizowaliśmy dokładnie Twój pierwszy program w Javie. Następny wpis będzie poświęcony Eclipse IDE. Napiszemy jeszcze raz ten sam program, tym razem z wykorzystaniem tego narzędzia.

1 Comment Pierwszy program w Javie (cz. 2)

  1. Gość

    Długo szukałem dobrego merytorycznie, zrozumiałego i przyjaznego kursu języka Java. Aż trafiłem na tą stronę. Kurs zapowiada się rewelacyjnie 🙂 . Mam nadzieję że dzięki niemu nauczę się podstaw tego języka.

    Reply

Dodaj komentarz

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