W poprzednim rozdziale stworzyliśmy pierwszy projekt w IDE, więc teraz możemy już zacząć naukę samego języka. Oczywiście, jeśli ktoś z Was pominął tamten rozdział i zajrzał najpierw tutaj, bo nie czuje się przekonany do
używania środowiska programistycznego, to również cały ten tekst warto przeczytać.
Może nawet uda nam się Was przekonać, że używanie IDE jednak ma sens.
Zanim przejdziemy do składni, warto jest poświęcić jeszcze chwilę czasu na zrozumienie tego, jak to się dzieje, że coś, co pisze człowiek, jest zrozumiałe dla komputera. Innymi słowy, jak to jest,
że pisząc specjalnie przygotowany tekst, otrzymujemy program, który można uruchomić.
Oczywiście nie piszemy po prostu zwykłego tekstu, tylko podobnie jak w języku polskim musimy znać składnię i dostosować się do pewnych zasad.
Tylko wtedy komputer będzie w stanie zrozumieć, czego od niego oczekujemy. Java - jak każdy klasyczny język programowania - zawiera konkretne
instrukcje oraz słowa kluczowe, których odpowiednie wykorzystanie pozwala nam na stworzenie programu.
Składowe języka Java
Podsumowując, wyróżniamy dwie podstawowe składowe, które należy poznać, aby rozpocząć przygodę w programowaniu w Javie:
- Słowa kluczowe (Keywords)
Zbiór słów, które są zarezerwowane przez Javę, ponieważ mają określone znaczenie w funkcjonowaniu języka.
Wybraliśmy kilka przykładów z różnych kategorii słów, by ogólnie nakreślić temat. Wraz z kolejnymi rozdziałami kursu
słowa kluczowe będziemy przedstawiać w szerszym kontekście, przez co staną się bardziej zrozumiałe.
package
|
Określa pakiet, a więc grupę klas i interfejsów o zbliżonym zakresie działania.
Pakiet widziany z poziomu systemu operacyjnego to nic innego jak folder, a klasy i interfejsy
są definiowane w plikach. Najczęściej zarówno klasa, jak i interfejs są tworzone w osobnych dedykowanych plikach
(bywa, że w jednym pliku możemy mieć kilka klas i interfejsów, ale to nie jest istotne na tym etapie).
|
class
|
Klasa definiuje cechy i zachowania, które przyjmie obiekt stworzony na bazie takiej klasy.
Zachowania to działania, jakie obiekt może wykonać. Najczęściej są to funkcje (w Javie mówimy metody).
Natomiast cechy obiektu są przechowywane w polach klasy (fields).
|
interface
|
Interfejs definiuje zachowania, które przyjmie obiekt stworzony na bazie takiego interfejsu.
W przypadku interfejsu inaczej niż w przypadku klas, metody najczęściej nie zawierają kodu wykonującego
określone zadanie (zdarzają się wyjątki, ale o tym nie teraz).
Metody te są projektem, a więc tworzymy tylko ich deklaracje, a to klasy później dostarczą wykonanie tego projektu.
|
import
|
Używane na początku pliku z kodem. Wskazuje lokalizacje zewnętrznych pakietów i
klas, których później możemy użyć w naszym kodzie.
|
extends
|
Umożliwia rozszerzanie klas i interfejsów przez podklasy i podinterfejsy.
|
implements
|
Umożliwia implementowanie interfejsów przez klasy.
|
new
|
Umożliwia stworzenie instancji obiektu na podstawie konkretnej klasy lub obiektu tablicy.
|
int
|
Określa typ prosty liczbowy zdolny do przechowywania liczby całkowitej o określonym rozmiarze.
|
if
|
Słowo wykorzystywane do stworzenia instrukcji warunkowej o tej samej nazwie.
|
- Instrukcje (Statements)
Określają konkretne działania w programie, takie jak na przykład deklarowanie i przypisywanie wartości lub sterowanie zachowaniem kodu.
Appa Notka. W poniższych przykładach podajemy dodatkowe informacje w postaci jednolinijkowych komentarzy (//).
Ten rodzaj komentarza zapożyczyliśmy od Javy. Właśnie w taki sposób w Javie oznaczamy fragmenty,
które mają nieść ze sobą dodatkowe wyjaśnienia i które są pomijane przez program podczas uruchamiania.
Wracając do tematu, tak wygląda lista podstawowych instrukcji używanych w Javie:
- Deklaracyjne (Declaration Statement) - umożliwiają zadeklarowanie zmiennej, na przykład:
- Wyrażeniowe (Expression Statement) - elementy kodu zakończone średnikiem, na przykład:
- Przepływu (Control Flow Statement) - kontrolują przepływ wykonywanych fragmentów kodu:
- Blokowe - zbiór składowych kodu (np. instrukcji) tworzących większą niezależną instrukcję:
Instrukcje również będziemy omawiać w szerszym kontekście w kolejnych rozdziałach kursu.
Formatowanie
Niezwiązane bezpośrednio z samym językiem, ale mające istotne znaczenie w kontekście tego, jak wygląda kod. Ważna jest bowiem jego czytelność.
Musi on być uporządkowany, a to oznacza, że ułożenie instrukcji i słów kluczowych musi być odpowiednio zorganizowane.
Dlatego też środowiska programistyczne mają możliwość zdefiniowania zasad takich jak rozmiar wcięć, liczba znaków przerwy między poszczególnymi elementami
kodu, puste linie i wiele innych ustawień wpływających na wygląd.
Wszystkie takie ustawienia mogą zostać zapisane jako zbiór reguł w pliku i później mogą być zaaplikowane do wszystkich plików, nad którymi pracujemy.
Pliki takie, nazywane
formaterami kodu mogą (a nawet powinny) być również współdzielone między programistami w zespole, tak aby cały zespół używał tego samego formatowania.
Pierwszy kod - składnia
W początkowym paragrafie omówiliśmy, jak wyglądają najważniejsze elementy składni języka. Natomiast w poprzednim rozdziale
Eclipse - Pierwszy projekt stworzyliśmy pierwszy program, korzystając z IDE.
Połączmy więc te dwie rzeczy razem i zerknijmy na ten program raz jeszcze. Oczywiście będziemy również do niego wracać w kolejnych rozdziałach. Wtedy przedstawimy jeszcze więcej detali.
Pierwsze co rzuca nam się w oczy to słowa kluczowe, takie jak
public,
class,
static,
void. Następnie widzimy, że kod posiada
wydzielone bloki. Jeden z nich określa
blok całej klasy, a drugi - zawierający się w tej klasie -
blok metody.
Możemy więc powiedzieć, że nasz pierwszy program zawiera instrukcje blokową, w której zawiera się inna instrukcja blokowa, w której definiujemy instrukcję w postaci wyrażenia
(wywołującego metodę drukującą na konsoli tekst "Hello!").
Widzimy także charakterystyczne wcięcia przed rozpoczęciem każdej kolejnej zagnieżdzonej instrukcji.
Jeśli używamy IDE, to wcięcia te zdefiniujemy w konfiguracji (za pomocą wspomnianego już
formatera kodu), natomiast pisząc kod w "spartańskich" warunkach, na przykład w notatniku (co na dłuższą metę odradzamy),
musimy to robić ręcznie, za każdym razem wstawiając cztery spacje. Taka powinna być szerokość wcięć, aby kod programu wyglądał czytelnie.
Uruchomienie z konsoli
Jeśli z jakiegoś powodu nadal nie chcemy używać IDE albo chcemy poznać alternatywną metodę uruchomienia takiego programu, możemy użyć odpowiedniego polecenia w konsoli
cmd.
Załóżmy więc, że kod naszego programu napisaliśmy w notatniku i w naszych rękach pozostaje tylko plik z kawałkiem tekstu. Tekst wygląda czytelnie, ale my zastanawiamy się, co teraz trzeba zrobić,
żeby komputer był w stanie go zrozumieć.
To jest coś, o co nie musimy się martwić, używając IDE. Tam za każdym razem, gdy zapisujemy plik, wykonywana jest kompilacja do kodu maszynowego.
W przypadku zestawu notatnik plus konsola, kompilację trzeba wykonać ręcznie, chociaż... no właśnie, ostatnio sprawa ta i tutaj mocno się uprościła.
Przed pojawieniem się Javy 11, należało uruchomić niezależną komendę (z konsoli
cmd) o nazwie
javac:
W ten sposób powstawał plik z rozszerzeniem
class, który zawierał przetworzone (skompilowane) dane rozumiane przez komputer. Taki plik (notabene całkowicie nieczytelny dla człowieka)
trzeba było uruchomić osobnym poleceniem:
Na szczęście od
Javy 11 wystarczy użyć komendy
java bezpośrednio z plikiem źródłowym (z naszym oryginalnym kodem):
Wtedy nastąpi kompilacja i automatyczne uruchomienie programu. W efekcie zobaczymy nasz tekst wydrukowany na konsoli. Jest pięknie, tylko właściwie po co tak się trudzić, skoro to wszystko można
osiągnąć, korzystając z przyjemnego interfejsu graficznego?
Przecież nikt o zdrowych zmysłach nie będzie pisał kodu większego projektu w notatniku, żeby go potem uruchamiać z poziomu konsoli (pomijamy małe programiki pisane w szkole czy na studiach).
W tym miejscu zatoczyliśmy koło i wracamy do punktu wyjścia. Dokładnie rzecz ujmując, wracamy do pierwszego akapitu bieżącego rozdziału, w którym sugerujemy, że warto zaznajomić się ze środowiskiem programistycznym (IDE).
Zatem jeśli jeszcze tego nie zrobiliście, to polecamy udać się czym prędzej do rozdziału
Narzędzia programistyczne.
Linki:
Co nowego w Javie 17?
Premiera Javy 16 GA
Java 15 już we wrześniu
Kolejne nowości w Javie 14
Java 14 już na horyzoncie
Java 13 już we wrześniu
Nadchodzi Java 12
Podsumowanie Java 9, Java 10, Java 11
Masz pytanie dotyczące prezentowanego materiału?
Coś jest dla Ciebie niejasne i Twoje wątpliwości przeszkadzają Ci w pełnym zrozumieniu treści?
Napisz do nas maila, a my chętnie znajdziemy odpowiednie rozwiązanie.
Najciekawsze pytania wraz z odpowiedziami będziemy publikować pod rozdziałem.
Nie czekaj. Naucz się programować jeszcze lepiej.