Jason. Cała informatyka w jednym miejscu!

Zaczynamy drugą część redagowania artykułów o języku Java! Poinformowałem Was wcześniej, że z racji uzupełniania kategorii o dodatkowe wpisy, ich kolejność na liście nie będzie odpowiadała rosnącemu poziomowi trudności czy też jakiejś "drodze" postępowania według książki, z której pobieram materiał. Dlatego też będę umieszczać na końcu artykułów link do kolejnego wpisu, który uważam za taki, który powinien zostać przeczytany jako następny, okej 😄? A na razie siądźcie sobie wygodnie w fotelu czy co tam macie 🙂 i przechodzimy do tematu będącego prawdziwym wprowadzeniem: pierwszy program w języku Java + bonus ode mnie w postaci wytłumaczenia kompilacji aż na cztery sposoby!

OTO CO MUSISZ ZROBIĆ, ŻEBY PIERWSZY PROGRAM W JĘZYKU JAVA CI "HULAŁ"!

Zanim zaczniemy, cechy języka Java macie opisane tu. Zawsze tak zaczynam nową serię artykułów o języku programowania, że najpierw zapowiadam, potem przedstawiam powody dla których warto się zainteresować nauką języka i wtedy dopiero na końcu startuję z nauką praktyczną 👏.

Już przestaję odchodzić od tematu. Program jaki napiszecie razem ze mną nie będzie robił niczego skomplikowanego. Zrobimy sobie wypisywanie tekstu na ekran terminala, biorąc przykład historyczny od Pana Briana Kernighana, wszystkim znany..."Hello, world!", tylko lekko zmodyfikowany 👍. Skompilujemy sobie pierwszy program w języku Java na czterech następujących środowiskach:

Gusta są różne, a nie chcę koncentrować się wyłącznie na jednym środowisku, aby uwzględnić tylko tę część publiki, która korzysta z najbardziej popularnego środowiska. Nie od dziś wiem że króluje zawsze to, co jest popularne, a wcale dla kogoś nie musi być doskonałe. Ktoś może nie faworyzować narzędzi autorstwa JetBrains czy Microsoft i ja to uszanuję 👊.

INSTALACJA ZESTAWU DEWELOPERSKIEGO

Aby być zdolnym do pisania programów w języku Java, potrzebny nam będzie tzw. "Development Kit", co w wolnym tłumaczeniu oznacza "zestaw deweloperski". A tak po polsku, jest to narzędzie zdolne do przetwarzania kodu źródłowego i wykonywania kompilacji - procesu tłumaczenia kodu zrozumiałego dla człowieka na język maszynowy zrozumiały dla procesora. Łapcie termin jak najszybciej, bo często go będziecie widzieć (a najlepiej przejdź do załączonego artykułu 😉)!

Ze swojej strony polecam gorąco "Eclipse Adoptium" (dawniej "AdoptOpenJDK"). Dlaczego ten, a nie oficjalny Oracle'a? Bo firma każe sobie płacić za subskrypcję w przypadku korzystania z języka Java do celów komercyjnych. Żebyście nie mieli nieprzyjemności, lepiej skorzystać z pakietu zezwalającego na wykorzystywanie komercyjne za darmo.

TWORZENIE NOWEGO PROJEKTU

Zanim zabierzemy się za dyskutowanie o kodzie źródłowym, w pierwszej kolejności potrzebny będzie projekt, czyli katalog do którego osadzimy sobie wszystkie pliki źródłowe naszej skromnej aplikacji. W zależności od wyboru środowiska, jest to proces mniej lub bardziej manualny.

INTELLIJ IDEA

"IntelliJ IDEA" jest bardzo przyjaznym środowiskiem autorstwa firmy JetBrains do pisania kodu w języku Java, chociaż nie ogranicza się tylko do niego. Doskonale integruje się również z Kotlinem, na temat którego możecie poczytać więcej startując z tego miejsca. Instrukcja dotyczy wersji 2023.3.2. Kiedy już zainstalujesz sobie program, przejdź do opcji "New Project" (wygląd przycisku i jego umiejscowienie zależy od tego, czy na liście są jakieś niedawno otwarte projekty). W oknie jakie Ci wyskoczy, Ciebie na tę chwilę interesuje wyłącznie pole tekstowe o nazwie "Name". Tu wpisujesz nazwę projektu jaką będzie się kierował, są dopuszczalne spacje. Ona będzie reprezentowana w ścieżce do projektu. Po wciśnięciu przycisku "Create" umieszczonego na samym dole okna, projekt zostanie utworzony i od tej pory możesz pisać kod.

Tworzenie projektu dla pierwszego programu w języku Java w "IntelliJ IDEA"
Tworzenie projektu dla pierwszego programu w języku Java w "IntelliJ IDEA" - część druga
Tworzenie projektu dla pierwszego programu w języku Java w "IntelliJ IDEA" - część trzecia

Proces tworzenia projektu w "IntelliJ IDEA" na pierwszy program w języku Java.

Zaznaczam, że w przyszłych wersjach programu, wygląd czy też nawet przebieg tworzenia projektu może nieco odbiegać od wyżej wymienionego!

ECLIPSE

"Eclipse" to drugi popularny IDE do pisania kodu "javowego". Sytuacja wygląda podobnie, instalujemy program (wierzę, że wybrałeś(-aś) "Eclipse for Java Developers" 🙂), uruchamiamy go i pojawi się okienko "Select a directory for workspace". Tutaj określasz katalog dla wszystkich tworzonych projektów w "Eclipse". Możesz zostawić wartość domyślną.

W oknie głównym zaznaczasz "File", "New", "Java Project". Jak wyżej - na sam początek wystarczy jedynie zmiana nazwy projektu, tylko jedna uwaga! Tu o dziwo, nie wolno Ci dodawać spacji w nazwie projektu. Wystarczy potem kliknąć przycisk "Finish" i gotowe. Może na Ciebie czekać niespodzianka, gdyż nic się nie wydarzy po utworzeniu projektu, tak jak to jest przy "IntelliJ IDEA". Musisz przejść do okna "Project Explorer", które znajdziesz w menu "Window", "Show View". Tam wystarczy potem rozwinąć listę z nazwą projektu i można zacząć tworzyć kod (jeśli też byłeś(-aś) zaskoczony(a), że nic się nie pojawia, witam w klubie 😅!).

Tworzenie projektu dla pierwszego programu w języku Java w "Eclipse"
Tworzenie projektu dla pierwszego programu w języku Java w "Eclipse" - część druga
Tworzenie projektu dla pierwszego programu w języku Java w "Eclipse" - część trzecia

Proces tworzenia projektu w "Eclipse" na pierwszy program w języku Java.

UWAGA! "Eclipse" wymaga wprowadzenia pliku źródłowego do pakietu, a przynajmniej u mnie nie dopuścił do uruchomienia bez wstawienia kodu do pakietu. O pakietach porozmawiamy sobie później, więc pokażę jedynie jak dodać plik do pakietu.

Kliknij prawym przyciskiem myszy na katalog "src" i wybierz "New", "Class". Znajdź pole tekstowe "Package" i wprowadź do niego ciąg znaków bez spacji. Na chwilę obecną możecie wpisać co chcecie, jednak obowiązują pewne konwencje, których trzeba się trzymać. Przycisk "Finish" zakończy sprawę.

VISUAL STUDIO CODE

"VSCode" to świetne rozwiązanie kompromisowe pomiędzy wagą (w porównaniu do większości innych oprogramowań do wygodniejszego pisania kodu), a możliwością rozbudowywania o nowe funkcjonalności poprzez pobieranie do niego wtyczek. W pierwszym kroku wejdź sobie na tę stronę i zainstaluj niezbędne narzędzia w celu programowania w języku Java przy użyciu "Visual Studio Code". Można się pogubić co zainstalować, gdyż to zależy od tego, ile zainstalowaliśmy ręcznie. Tak zwany "Coding Pack" jest paczką wszystkiego co niezbędne i jej instalacja jest właściwa, gdy nie zainstalowano jeszcze niczego (nawet zestawu deweloperskiego!). Jeżeli masz już jakiś zainstalowany JDK (na przykład "Eclipse Adoptium"), to możesz skorzystać z drugiego sposobu instalacji i pobrać jedynie wtyczki wchodzące w skład "Extension Pack". Zostanie to Tobie również zaproponowane w chwili otwarcia dowolnego pliku z rozszerzeniem ".java", a program jeszcze nie posiada tychże wtyczek.

Kiedy uda Ci się zamontować obsługę języka przez program na jeden z dwóch sposobów, jesteś już w stanie pisać swój pierwszy program w języku Java. Wystarczy, że sobie stworzysz katalog, dodasz do niego plik z rozszerzeniem ".java" (prawy przycisk myszy na eksplorator, "Nowy plik"), a po zakończeniu kodowania wciśniesz klawisz F5 (klawisz funkcyjny służący do kompilowania i uruchamiania jednocześnie). Za chwilę zostanie zaprezentowany przykładowy kod i będziesz mógł/mogła sprawdzić działanie 😉!

WIERSZ POLECEŃ

Używając "ceemdeka", nie mamy innej możliwości jak utworzyć sobie własnoręcznie nowy katalog o nazwie naszego projektu i przejść do niego używając polecenia "cd" (w ciągu całego artykułu będę stosować się do Windowsa 11, dlatego też trzeba już się samemu dostosować do innych systemów operacyjnych). W celu pisania kodu będzie Ci potrzebny jakiś edytor ułatwiający pracę np. "Notepad++". Proces kompilacji zostanie opisany później.

PIERWSZY KOD ŹRÓDŁOWY

Jeżeli wszystko projektowo gra i buczy, przechodzimy dalej do konkretów. Język Java ma zarezerwowane rozszerzenie ".java" i tylko takie rozszerzenie stosujemy do plików źródłowych. Oto przykład kodu źródłowego na pierwszy program w języku Java (usuń wszelką treść, jeżeli została wygenerowana automatycznie przez wybrane przez Ciebie środowisko):

public class Main {
	public static void main(String[] args) {
		System.out.println("Hello, Java!");
	}
}

Powyższą treść umieść w pliku o nazwie "Main" z rozszerzeniem ".java". Teraz zajmiemy się analizą od środka.

KLASA

Java jest językiem zorientowanym obiektowo. Oznacza to, że w myśl paradygmatu obiektowego, program jest pisany z punktu widzenia obiektów, to znaczy że funkcjonalności są dzielone na obiekty. Według wielu osób taki sposób postrzegania programu jest zgodny z naszym w rzeczywistości, przez co o wiele łatwiej jest sobie wyobrazić podział kodu na klasy (wzorce obiektów) i obiekty (instancje klas).

KAŻDY plik źródłowy reprezentuje JEDNĄ klasę. Tak jak tutaj - masz plik "Main", a w środku niego jest klasa "Main". Logiczne, nie 😊? Klasa zazwyczaj zawiera w sobie jakąś treść, którą fachowo nazywa się "składowymi". Po czym rozpoznać, że coś należy do klasy? Wystarczy zwrócić uwagę, że to "coś" znajduje się wewnątrz pary klamerek. I tyle na razie musisz wiedzieć na ten temat.

PUBLICZNY MODYFIKATOR DOSTĘPU

Jak zdążyliście zauważyć, w kodzie znajduje się hasło "public". To jest słowo kluczowe nakładające na element jeden z kilku tzw. modyfikatorów dostępu (to nie dotyczy tylko i wyłącznie klas!). O nich napiszę więcej w innym artykule, a na razie pozostaje wiedzieć, że każda klasa reprezentująca plik źródłowy MUSI być publiczna! Jak to wszędzie zdarzają się wyjątki klas "niepublicznych" (dlatego dopisałem "reprezentująca plik źródłowy"), jednak znowu - szczegóły później!

FUNKCJA "MAIN"

W środku klasy "Main" znajduje się dodatkowy element o tej samej nazwie pisanej małą literą:

public static void main(String[] args) {
	System.out.println("Hello, Java!");
}

To jest funkcja. Funkcje są kluczowym budulcem każdego (nawet najprostszego) programu będącymi podprogramami zawierającymi serię instrukcji bądź jedną instrukcję. Ich zastosowanie ma na celu oddzielić instrukcje od innych, które nie mają ze sobą nic wspólnego, a także umożliwić wykonywanie tych samych czynności wielokrotnie bez pisania ich tyle samo razy. Szczególnie zrozumiecie ten drugi punkt podczas programowania pętli ("for", "while", "do while" itd.), bez których wszelkie instrukcje repetetywne by w ogóle nie istniały!

Każda funkcja dysponuje swoją nazwą (tutaj jest nią "main"), typem zwracanej wartości (tutaj jest nim "void") oraz może przyjmować jakieś parametry (tutaj jedynym jest ten o nazwie "args"). Żeby napisać wszystkie najważniejsze informacje o funkcjach, musiałbym napisać drugie tyle materiału w jednym wpisie, więc pozwolicie, że Wam zostawię resztę w odrębnym artykule 😝. Ciekawym zastosowaniem jest parametr "args" - umożliwia on wykorzystanie argumentów podawanych po nazwie pliku wykonywalnego w wierszu poleceń, tak jak to jest w starszych grach zawierających wbudowane ciągi po znaku myślnika, których wpisanie aktywuje np. tajne kody 🙂.

Funkcja "main" jest funkcją OBOWIĄZKOWĄ w każdym programie i próba kompilacji bez znalezienia tej funkcji zakończy się niepowodzeniem!

STATYCZNOŚĆ

Słowo "static" stanowi kolejne słowo kluczowe - oznacza ono, że funkcja "main" jest statyczna:

public static void main(String[] args) {

W dużym skrócie składowa statyczna oznacza, że stanowi część klasy, a nie obiektu. Rozszerzymy sobie temat w innym artykule - zbyt wiele informacji jak na pierwszy program w języku Java 😉. Funkcja "main" musi koniecznie być statyczna! Bez tego, nici z kompilacji!

WYWOŁANIE FUNKCJI

Zaglądając do środka funkcji "main", widzimy że wewnątrz kolejnej pary nawiasów klamrowych jest instrukcja o nazwie "System.out.println", a dalej jest dziwny ciąg. Cały ten ciąg, od pierwszej litery do średnika:

System.out.println("Hello, Java!");

oznacza wywołanie funkcji o nazwie "System.out.println". Wywołanie to inaczej mówiąc sięgnięcie do środka funkcji i wykonanie wszystkich instrukcji znajdujących się w jej ciele. My nie wiemy co się konkretnie znajduje w środku funkcji i specjalnie nas to nie musi interesować (interesujemy się dopiero podczas tworzenia własnych funkcji 😉). Dla nas znaczy efekt jaki ma przynieść wywołanie tejże funkcji. Akurat ta funkcja wypisuje wprowadzony tekst na ekran terminala (np. na konsolę w wierszu poleceń) i przechodzi do następnego wiersza, tak jakbyśmy wcisnęli klawisz Enter. I tu tłumaczę odpowiedź na pytanie SKĄD funkcja ma wiedzieć, co ma wypisać. Parametrem tejże funkcji jest tekst "Hello, Java!".

Gdyby Ci nie zależało na przechodzeniu do kolejnego wiersza, możesz użyć funkcji "System.out.print" (usuń ukośnik po nazwie, wprowadziłem go bo nie mogłem zapisać artykułu):

System.out.print/("Hello, Java!");

Spowoduje to to, że zostanie jedynie wypisany tekst i to wszystko. Wizualnie wszystko będzie działało tak samo, aczkolwiek w chwili powtórnego wypisania tego samego tekstu:

System.out.print/("Hello, Java!");
System.out.print/("Hello, Java!");

będziemy mieli dwa takie same teksty w jednej linii!

Hello, Java!Hello, Java!

Zostawmy sobie szczegóły na odrębny materiał 😁.

TEKST W CUDZYSŁOWACH

Skoro jesteśmy przy tekście, to musimy sobie uświadomić jedną rzecz. Wszelki tekst jaki chcemy wprowadzić do programu musi się znajdować w cudzysłowie! Komputer interpretuje tekst inaczej niż my i potrzebuje jakiegoś oznaczenia początku "rozpoczęcia" traktowania symbolu jako tekst i zakończenia takiego traktowania. Każdy taki tekst (i nie tylko tekst) określamy łańcuchem znaków. Nie wolno stawiać znaku równości pomiędzy pojęciami "tekst", a "łańcuch znaków", ponieważ tekst zwykle rozumiemy jako coś poprawnie gramatycznego i sensownego. Łańcuchem znaków może być dowolny ciąg symboli, który wcale nie musi reprezentować sensownego zdania ani nawet nie musi w ogóle składać się z liter! Ciąg:

!$$$%^%$$$!

TAKŻE jest łańcuchem znaków, choć nie jest zdaniem nadającym się do przeczytania 😂! Informacje na temat łańcucha znaków, jak go stosować, na co zwrócić uwagę - wszystko w osobnym materiale!

ŚREDNIK

Średnik jest znakiem stawianym obowiązkowo po napisaniu każdej pojedynczej instrukcji. Spójrz na wywołanie funkcji "println":

System.out.println("Hello, Java!");

Zaraz po zamknięciu nawiasu mamy średnik! Nie wolno go pomijać, bo inaczej kompilacja zakończy się wystąpieniem błędu!

KOMPILACJA I URUCHAMIANIE PROGRAMU

Po wklejeniu powyższego kodu na pierwszy program w języku Java, przyszedł czas na jego odpalenie! Jak się to robi? A to już zależy od środowiska jakie sobie wybrałeś(-aś) 😎!

INTELLIJ IDEA

Tu jest najprzyjemniejsza sytuacja, bowiem wystarczy wcisnąć guziczek z ikonką zielonej strzałki skierowanej w prawo (jak popularne "Play" w odtwarzaczach):

Kompilacja i uruchamianie pierwszego programu w języku Java w "IntelliJ IDEA"

Przycisk przeznaczony do jednoczesnej kompilacji i uruchomienia aplikacji w "IntelliJ IDEA".

"IntelliJ IDEA" zrobi wszystko za Ciebie, skompiluje kod, uruchomi program i zaprezentuje wynik jakim jest nasz wpisany tekst. Cudownie 🍰!

ECLIPSE

W "Eclipse" (po upewnieniu się, że plik "Main" znajduje się w pakiecie - zobacz punkt "Tworzenie nowego projektu") wszystko co trzeba zrobić, to przejść do zakładki "Run" i "Run":

Kompilacja i uruchamianie pierwszego programu w języku Java w "Eclipse"

Przycisk przeznaczony do jednoczesnej kompilacji i uruchomienia aplikacji w "Eclipse".

Po chwili program się skompiluje, a Ty możesz zacierać rączki że udało się napisać pierwszy program w języku Java 😀!

VISUAL STUDIO CODE

Wtyczka "Extension Pack" ustawia w "VSCode" skrót do kompilowania i uruchamiania programu - to jest klawisz F5. Jeżeli nie funkcjonuje prawidłowo, upewnijcie się że macie otwarty plik z kodem źródłowym "Main". Rezultat ukaże się w terminalu na dole ekranu.

WIERSZ POLECEŃ

"cmd" wymaga odwalenia całej roboty samodzielnie 😑. Zakładając, że macie otwartą konsolę i przeszliście do katalogu projektowego, po zapisaniu pliku z kodem źródłowym wpisujecie następującą komendę:

javac Main.java

To skompiluje kod. Zaraz po tym poleceniu, wprowadź jeszcze jedno:

java Main

i to sprawi, że program zostanie uruchomiony, a tekst wyświetli się w konsoli:

Kompilacja i uruchamianie pierwszego programu w języku Java w wierszu poleceń

Kompilacja i uruchamianie programu w wierszu poleceń.

Ostrzegam, że jeśli będziecie chcieli uruchomić program po wprowadzonych modyfikacjach, musicie każdorazowo powtórzyć OBA polecenia!


Dotrwaliście do końca 🙃? Mam taką nadzieję, bo wiedząc że muszę to wszystko wyłożyć tak, jak tylko mogę, jestem w stanie sobie wyobrazić znudzenie i zniechęcenie spowodowane ogromną ilością tekstu. Pamiętaj, że zawsze możesz tu wrócić jak czegoś zapomnisz, a na razie piszę "siema" i widzimy się w kolejnym artykule jaki załączam poniżej, który uważam za następny do przeczytania 👋!

NASTĘPNY ARTYKUŁ: Operatory w języku Java. Podział na rodzaje

PODOBNE ARTYKUŁY