Twój pierwszy program w Javie
Witaj ponownie! ☕
W poprzedniej lekcji przygotowaliśmy nasze środowisko programistyczne:
- Java 25 LTS jest zainstalowana;
- IntelliJ IDEA jest gotowy;
- nasz projekt istnieje;
- i, miejmy nadzieję, nic jeszcze nie wybuchło.
Teraz wreszcie pora zrobić to, po co tu przyszliśmy:
napisać trochę Javy.
W tej lekcji stworzymy nasz pierwszy prawdziwy program Java:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, InnoMarts!");
}
}
Na pierwszy rzut oka to podejrzanie dużo tekstu tylko po to, żeby wyświetlić jedno zdanie.
Spokojnie.
Pod koniec tej lekcji większość z tego będzie już miała sens.

Czego się nauczysz
Po tej lekcji będziesz wiedzieć, jak:
- utworzyć klasę Java;
- napisać pierwszy kompletny program;
- uruchomić kod w IntelliJ IDEA;
- zrozumieć podstawową strukturę klasy Java;
- zrozumieć, czym jest
main(); - wypisywać tekst do konsoli;
- używać
print()iprintln(); - rozpoznawać instrukcje Java;
- rozumieć średniki i nawiasy klamrowe;
- dodawać komentarze;
- celowo zepsuć program;
- odczytywać kilka typowych błędów kompilatora.
Tak.
Psucie programu oficjalnie jest częścią lekcji.
Witaj w programowaniu. 😄
1. Otwórz projekt Java
Uruchom IntelliJ IDEA i otwórz projekt utworzony w Lekcji 1:
java-course
W panelu Project powinieneś zobaczyć coś podobnego:
java-course
└── src
Folder src to miejsce, w którym będzie znajdował się nasz kod źródłowy Java.
Teraz w końcu trzeba coś do niego dodać.
2. Utwórz pierwszą klasę Java
Kliknij prawym przyciskiem myszy folder src.
Wybierz:
New → Java Class
Wpisz:
Main
i naciśnij Enter.
IntelliJ IDEA utworzy plik:
Main.java
W środku powinieneś zobaczyć coś podobnego:
public class Main {
}
Gratulacje.
Właśnie utworzyłeś swoją pierwszą klasę Java.
Na razie nie robi absolutnie nic.
Ale nie oceniajmy jej zbyt szybko.
Istnieje od około pięciu sekund.
3. Czym jest klasa?
Programy Java są zbudowane wokół klas.
Na razie możesz myśleć o klasie jak o kontenerze na powiązany kod.
W dalszej części kursu będziemy tworzyć klasy takie jak:
User
Car
Product
BankAccount
Task
Order
Ale dziś zaczynamy od klasycznej:
Main
Deklaracja klasy wygląda tak:
public class Main {
}
Rozłóżmy ją na części.
public
Słowo:
public
to modyfikator dostępu.
Na razie wystarczy wiedzieć, że sprawia on, iż klasa może być dostępna z innych części programu.
Do modyfikatorów dostępu wrócimy dokładniej przy programowaniu obiektowym.
Nie próbuj więc dziś zapamiętać całego wszechświata Javy.
Twój mózg ma już wystarczająco dużo otwartych kart.
class
Słowo kluczowe:
class
mówi Javie:
"Definiuję klasę."
Java ma wiele słów kluczowych o specjalnym znaczeniu.
class jest jednym z nich.
Main
To nazwa naszej klasy:
Main
Nazwy klas w Javie zwykle zaczynają się wielką literą.
Na przykład:
Main
User
Product
BankAccount
ShoppingCart
Ważna rzecz:
Java rozróżnia wielkie i małe litery.
Czyli jest case-sensitive.
To oznacza, że:
Main
main
MAIN
to trzy różne nazwy.
Java nie patrzy na nie i nie mówi:
"No dobrze, prawie to samo."
Java jest mniej wyrozumiała niż Twoi znajomi.
4. Dlaczego plik nazywa się Main.java?
Nasz plik nazywa się:
Main.java
a wewnątrz mamy:
public class Main
Jeśli klasa najwyższego poziomu jest zadeklarowana jako public, nazwa pliku musi odpowiadać nazwie klasy.
Czyli:
public class Main
powinno znajdować się w:
Main.java
A:
public class User
w:
User.java
Natomiast:
public class VeryImportantEnterpriseApplication
trafiłoby do:
VeryImportantEnterpriseApplication.java
Tak.
Java lubi zasady.
I długie nazwy.
Zwłaszcza długie nazwy.
5. Dodaj metodę main()
Teraz zmień zawartość pliku na:
public class Main {
public static void main(String[] args) {
}
}
Najważniejsza nowa linia to:
public static void main(String[] args)
To jest metoda main.
W prostym programie Java właśnie od niej zaczyna się wykonanie programu.
Możesz wyobrazić ją sobie jako drzwi wejściowe.
Kiedy Java pyta:
"Od czego mam zacząć?"
odpowiedź brzmi:
main()
6. Straszne public static void main(String[] args)
Ta linia potrafi przestraszyć początkujących:
public static void main(String[] args)
Wygląda trochę tak, jakby ktoś próbował zmieścić połowę Javy w jednym wierszu.
Rozbijmy ją na części.
public
public
oznacza, że metoda może być dostępna spoza klasy.
Na razie tyle wystarczy.
static
static
pozwala Javie użyć tej metody bez wcześniejszego tworzenia obiektu klasy Main.
Obiekty pojawią się później.
Znacznie później.
Na razie zapamiętaj:
staticpozwala Javie rozpocząć tutaj bezpośrednio.
void
void
oznacza, że metoda niczego nie zwraca.
Później stworzymy metody, które zwracają na przykład:
42
"Hello"
true
obiekt User
Ale main() niczego nie zwraca.
Dlatego używamy:
void
main
To nazwa metody:
main
Java oczekuje dokładnie tej nazwy dla standardowego punktu startowego aplikacji.
Zwróć uwagę na małe m.
To:
main
i to:
Main
to dwie różne rzeczy.
Jedno jest metodą.
Drugie klasą.
String[] args
Na końcu mamy:
String[] args
Pozwala to programowi otrzymywać argumenty z wiersza poleceń.
Na przykład kiedyś moglibyśmy uruchomić:
java Main Viktor
i otrzymać:
Viktor
wewnątrz programu.
Na razie nie będziemy używać argumentów wiersza poleceń.
Tablice też pojawią się później.
Na ten moment zapamiętaj:
String[] argsjest częścią standardowej deklaracji metodymain().
I to wystarczy.
Nie musimy jeszcze przywoływać specyfikacji języka Java.
7. Niech program coś powie
Program potrafi już wystartować, ale nadal niczego nie pokazuje.
Naprawmy to.
Dodaj wewnątrz main():
System.out.println("Hello, InnoMarts!");
Cały program powinien wyglądać tak:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, InnoMarts!");
}
}
To jest kompletny, działający program Java.
Mały?
Tak.
Ważny?
Też tak.
Każda duża aplikacja zaczyna się od małych elementów.
Chociaż miejmy nadzieję, że Twoje przyszłe oprogramowanie bankowe będzie robiło trochę więcej niż tylko mówiło "Hello".
8. Uruchom pierwszy program
IntelliJ IDEA powinien pokazać zieloną ikonę Run obok metody main().
Kliknij ją.
Możesz też kliknąć prawym przyciskiem w edytorze i wybrać:
Run 'Main.main()'
Na dole IntelliJ IDEA pojawi się okno Run.
Powinieneś zobaczyć:
Hello, InnoMarts!
To wynik działania Twojego programu.
Napisałeś kod Java.
Java go skompilowała.
JVM go wykonała.
A komputer wykonał polecenie.
Ciesz się tą chwilą.
Później komputer zacznie mieć własne zdanie.
9. Co robi System.out.println()?
Przyjrzyjmy się:
System.out.println("Hello, InnoMarts!");
To całkiem sporo znaków jak na jedną prostą wiadomość.
Rozbijmy to na części.
System
System
to klasa dostarczana przez Javę.
Zawiera funkcje związane ze środowiskiem uruchomieniowym programu.
out
out
reprezentuje standardowe wyjście.
Dla naszych pierwszych programów możesz myśleć o tym po prostu jako o:
konsoli
println
println
oznacza mniej więcej:
wypisz linię.
Wyświetla tekst i przechodzi do kolejnego wiersza.
Czyli:
System.out.println("Hello!");
wyświetli:
Hello!
i przeniesie kursor do następnej linii.
10. Wypisywanie kilku linii
Sprawmy, aby program był trochę bardziej rozmowny.
public class Main {
public static void main(String[] args) {
System.out.println("Hello!");
System.out.println("Welcome to Java.");
System.out.println("This is my first Java program.");
}
}
Uruchom go.
Powinieneś zobaczyć:
Hello!
Welcome to Java.
This is my first Java program.
Każde println() wypisuje jedną linię.
Proste.
Przydatne.
I znacznie ciekawsze niż pusta klasa wpatrująca się w nicość.
11. print() kontra println()
Java ma również:
System.out.print()
Zwróć uwagę, że brakuje:
ln
Porównajmy oba przypadki.
Używając print()
System.out.print("Hello ");
System.out.print("Java");
System.out.print("!");
Wynik:
Hello Java!
Wszystko pozostaje w jednej linii.
Teraz spróbuj:
System.out.println("Hello");
System.out.println("Java");
System.out.println("!");
Wynik:
Hello
Java
!
Różnica:
print() → zostaje w tej samej linii
println() → przechodzi do następnej linii
Będziesz używać obu.
Ale na początku println() prawdopodobnie zostanie Twoim najlepszym przyjacielem.
12. Czym jest String?
Spójrz na:
"Hello, InnoMarts!"
To jest String.
String reprezentuje tekst.
Przykłady:
"Java"
"My name is Viktor"
"I need more coffee."
"Why is the compiler angry again?"
To wszystko są Stringi.
Tekst w Javie zapisujemy między podwójnymi cudzysłowami:
" "
Później poświęcimy Stringom osobną lekcję.
Na razie zapamiętaj:
Jeśli chcesz, aby Java traktowała coś jak tekst, zwykle potrzebujesz podwójnych cudzysłowów.
13. Co się stanie bez cudzysłowów?
To działa:
System.out.println("Hello");
Teraz spróbuj:
System.out.println(Hello);
IntelliJ zacznie zgłaszać problem.
Dlaczego?
Bez cudzysłowów Java zakłada, że:
Hello
jest nazwą czegoś.
Może zmiennej.
Może pola.
Może jakiegoś innego tajemniczego elementu, którego jeszcze nie stworzyliśmy.
Ponieważ Java nie może go znaleźć, dostaniesz błąd.
Przywróć cudzysłowy:
System.out.println("Hello");
i wszystko znów działa.
Na tyle, na ile kompilator potrafi być szczęśliwy.
14. Czym jest instrukcja?
Ta linia:
System.out.println("Hello!");
jest instrukcją Java.
Instrukcja mówi programowi:
Zrób to.
Na przykład:
System.out.println("One");
System.out.println("Two");
System.out.println("Three");
to trzy instrukcje.
Java wykonuje je od góry do dołu.
Dlatego wynik będzie:
One
Two
Three
a nie:
Three
One
Banana
Two
Komputery są bardzo przewidywalne, kiedy kod jest poprawny.
15. Średnik ;
Spójrz na:
System.out.println("Hello");
Zwróć uwagę na średnik:
;
W Javie wiele instrukcji kończy się średnikiem.
Możesz traktować go jak kropkę na końcu zdania.
Teraz usuń go:
System.out.println("Hello")
IntelliJ powinien natychmiast pokazać problem.
Spróbuj uruchomić program.
Możesz zobaczyć błąd podobny do:
';' expected
Java właściwie pyta:
"Przepraszam, czy ta instrukcja już się skończyła?"
Przywróć średnik:
System.out.println("Hello");
i wszystko znów działa.
16. Nawiasy klamrowe { }
Program zawiera nawiasy klamrowe:
{
}
Definiują one bloki kodu.
Na przykład:
public class Main {
}
te nawiasy zawierają wszystko, co należy do klasy.
W środku klasy mamy:
public static void main(String[] args) {
}
Te nawiasy zawierają wszystko, co należy do main().
Strukturalnie wygląda to tak:
Klasa Main
{
metoda main
{
instrukcje
}
}
Bloki wewnątrz innych bloków pojawiają się w Javie praktycznie wszędzie.
17. Wcięcia są ważne — dla ludzi
Technicznie nawet taki kod może działać:
public class Main {
public static void main(String[] args) {
System.out.println("Hello");
}
}
Java go zrozumie.
Człowiek też może go zrozumieć.
Ale prawdopodobnie nie będzie z tego powodu szczęśliwy.
Lepiej pisać tak:
public class Main {
public static void main(String[] args) {
System.out.println("Hello");
}
}
Wcięcia sprawiają, że struktura jest czytelna.
IntelliJ IDEA potrafi automatycznie formatować kod.
Na wielu konfiguracjach skrót to:
Ctrl + Alt + L
Spróbuj.
Widok brzydkiego kodu, który nagle staje się uporządkowany, daje zaskakująco dużo satysfakcji.
18. Komentarze
Czasem chcemy zostawić notatkę w kodzie.
Java powinna ją zignorować.
Człowiek powinien ją przeczytać.
Do tego służą komentarze.
Komentarz jednoliniowy
Komentarz w jednej linii zaczyna się od:
//
Przykład:
public class Main {
public static void main(String[] args) {
// Wyświetl powitanie
System.out.println("Hello, InnoMarts!");
}
}
Java ignoruje:
// Wyświetl powitanie
Komentarz wieloliniowy
Możesz też użyć komentarza obejmującego kilka linii:
/*
To jest komentarz.
Java ignoruje cały ten tekst.
Nawet to zdanie.
*/
Na przykład:
public class Main {
public static void main(String[] args) {
/*
To nasz pierwszy program Java.
Niedługo stanie się ciekawszy.
*/
System.out.println("Hello, InnoMarts!");
}
}
Komentarze są przydatne.
Ale nie musisz opisywać rzeczy całkowicie oczywistych.
To:
// Wyświetl Hello
System.out.println("Hello");
niewiele wnosi.
Dobre komentarze częściej wyjaśniają dlaczego, a nie tylko co robi kod.
19. Zepsujmy wszystko celowo 💥
Teraz ważna umiejętność programisty:
celowe psucie rzeczy.
Brzmi dziwnie.
Ale jeśli sam wywołasz błąd, łatwiej go później rozpoznać.
Błąd 1 — Usuń średnik
Zacznij od:
System.out.println("Hello");
Usuń średnik:
System.out.println("Hello")
Sprawdź, co pokazuje IntelliJ.
Spróbuj uruchomić program.
Potem napraw błąd.
Błąd 2 — Napisz system zamiast System
Spróbuj:
system.out.println("Hello");
Java rozróżnia wielkie i małe litery.
Dlatego:
System
i:
system
to różne nazwy.
Popraw:
System.out.println("Hello");
Błąd 3 — Zapomnij o cudzysłowie
Spróbuj:
System.out.println("Hello);
Java nie wie wtedy, gdzie kończy się String.
Popraw:
System.out.println("Hello");
Błąd 4 — Usuń nawias klamrowy
Usuń jeden:
}
z programu.
Możesz nagle zobaczyć wiele błędów.
To ważna lekcja:
Jeden błąd może wywołać wiele komunikatów o błędach.
Jeśli IntelliJ pokazuje 12 problemów, nie znaczy to od razu, że popełniłeś 12 błędów.
Czasem brakuje jednego nawiasu i Java traci orientację.
Zawsze zacznij od pierwszego błędu.
20. Błędy kompilatora są przydatne
Początkujący często widzą czerwony tekst i myślą:
"Zniszczyłem wszystko."
Zwykle nie.
Kompilator próbuje Ci pomóc.
Na przykład:
';' expected
to naprawdę przydatna informacja.
Java oczekiwała:
;
i go nie znalazła.
To nie znaczy:
"Jesteś fatalny w Javie."
To raczej:
"Pogubiłem się w tym miejscu. Sprawdź tutaj."
Umiejętność czytania komunikatów błędów jest jedną z najważniejszych umiejętności programisty.
21. Twój pierwszy spersonalizowany program
Teraz zmodyfikuj program tak, aby mówił coś o Tobie.
Na przykład:
public class Main {
public static void main(String[] args) {
System.out.println("My name is Viktor.");
System.out.println("I am learning Java.");
System.out.println("I use IntelliJ IDEA.");
System.out.println("My code has not exploded yet.");
}
}
Użyj własnego imienia i własnych zdań.
Chyba że naprawdę masz na imię Viktor.
Wtedy możesz oszczędzić trochę pisania. 😄
🎯 Wyzwanie 1 — Developer Card
Napisz program, który wyświetli:
========================
DEVELOPER CARD
========================
Name: Viktor
Language: Java
IDE: IntelliJ IDEA
Level: Beginner
Goal: Build real projects
========================
Użyj kilku:
System.out.println()
Spróbuj napisać cały program samodzielnie.
🎯 Wyzwanie 2 — print() + println()
Spróbuj otrzymać dokładnie taki wynik:
Hello, Java!
Let's build something.
ale użyj w rozwiązaniu zarówno:
System.out.print()
jak i:
System.out.println()
Istnieje kilka poprawnych rozwiązań.
Eksperymentuj.
🎯 Wyzwanie 3 — Przewidź wynik
Spójrz na kod:
public class Main {
public static void main(String[] args) {
System.out.print("Java ");
System.out.print("is ");
System.out.println("fun!");
System.out.println("Let's continue.");
}
}
Zanim naciśniesz Run, spróbuj dokładnie przewidzieć wynik.
Potem uruchom program i porównaj.
To bardzo dobry nawyk.
Zamiast zawsze pytać:
"Co zrobił komputer?"
zacznij pytać:
"Czego oczekuję od komputera?"
To mała zmiana, ale duży krok w stronę myślenia jak programista.
22. Spójrzmy jeszcze raz na cały program
Nasz pierwotny program wyglądał tak:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, InnoMarts!");
}
}
Na początku lekcji wyglądał tajemniczo.
Teraz rozumiemy już całkiem sporo.
public class Main
tworzy klasę Main.
public static void main(String[] args)
definiuje punkt startowy aplikacji.
System.out.println(...)
wyświetla coś w konsoli.
"Hello, InnoMarts!"
to String.
;
kończy instrukcję.
A:
{ }
tworzą bloki kodu.
Całkiem sporo jak na Lekcję 2.
🎓 Czego się nauczyłeś
W tej lekcji nauczyłeś się:
- jak utworzyć klasę Java;
- dlaczego klasa znajduje się w
Main.java; - co oznacza słowo kluczowe
class; - dlaczego Java rozróżnia wielkie i małe litery;
- czym jest metoda
main(); - co w uproszczeniu oznaczają
public,staticivoid; - do czego służy
String[] args; - jak wyświetlać tekst przez
System.out.println(); - czym różni się
print()odprintln(); - czym jest String;
- czym jest instrukcja;
- dlaczego Java używa średników;
- do czego służą nawiasy klamrowe;
- dlaczego wcięcia mają znaczenie;
- jak działają komentarze;
- jak celowo stworzyć i naprawić podstawowe błędy.
Najważniejsze:
Potrafisz już samodzielnie stworzyć, uruchomić, zmodyfikować, zepsuć i naprawić prosty program Java. ☕
To już prawdziwy postęp.
Co dalej?
Potrafimy już pisać kod Java.
Ale za kulisami wciąż dzieje się coś ważnego.
Kiedy klikasz:
Run
w jaki sposób:
Main.java
zamienia się w działający program?
Co właściwie tworzy kompilator Java?
Czym jest bytecode?
Co dokładnie robi JVM?
I dlaczego ten sam kod Java może działać na Windows, Linux i macOS?
Tego dowiemy się w następnej lekcji.