Wyzwanie Java #1: Hello world!

Radosław Szmit 16 kwietnia 2018
 

Jak zapowiadaliśmy, chcemy Was zachęcić i zmotywować do nauki programowania! Do rozpoczęcia tej przygody potrzebny będzie nam komputer, dostęp do internetu i dużo, dużo chęci i wytrwałości. Naszym pierwszym wyzwaniem będzie napisanie swojego pierwszego programu w Javie!

Przygotujmy się

Zanim zaczniemy cokolwiek programować musimy przygotować nasz komputer do pracy. Będziemy potrzebować na początek wirtualnej maszyny Java (ang. Java Virtual Machine, w skrócie JVM) oraz środowiska dla programistów, tak zwane zintegrowane środowisko programistyczne (ang. integrated development environment, w skrócie IDE).

Wirtualna Maszyna Java

Java to jeden z najpopularniejszych języków programowania na świecie. Jednak Java, to nie tylko język programowania, to także cały ekosystem technologii i języków programowania zorientowanych wokół tak zwanej wirtualnej maszyny Java, czyli środowiska uruchomieniowego, które musimy zainstalować w naszym systemie operacyjnym (np. Windows, Linux, macOS) lub innym dowolnym urządzeniu, na którym chcemy wykonywać nasze programy. Taką maszynę wirtualną znajdziemy na większości komputerach na świecie, telefonach z systemem Android czy nawet na odtwarzaczach Blu-ray. Według strony GoJava obecnie już około 15 miliardów urządzeń korzysta z Javy.

Dlatego zanim zaczniemy cokolwiek robić w Javie, potrzebujemy zainstalować sobie wirtualną maszynę Java, która jest udostępniana w dwóch wersjach; Java Runtime Environment (JRE) zawierająca podstawową instalację maszyny wirtualnej wraz z dodatkowymi bibliotekami i komponentami, służącą przede wszystkim do uruchamiania programów oraz Java Development Kit (JDK) zawierająca wszystko co ma JRE plus dodatkowe narzędzia dla programistów. My oczywiście będziemy potrzebować JDK, które możemy ściągnąć tutaj ze strony Oracle.

Poniżej print screeny z procesu instalacji JDK wersji 10 na systemie Windows:

Zintegrowane środowisko programistyczne

Programowanie w skrócie to tak naprawdę pisanie odpowiednich poleceń w wybranym języku programowania które to polecenia są następnie tłumaczone na instrukcje rozumiane przez komputer, tak zwany kod maszynowy. Tak naprawdę nasz kod, czyli zestaw tych poleceń, możemy pisać w dowolnym narzędziu, począwszy od notatnika. Takie pisanie niestety wymaga od nas dużo większego wysiłku, dlatego z pomocą przychodzą właśnie zintegrowane środowiska programistyczne, które zawierają szereg ułatwień jak podpowiadanie składki, sprawdzanie poprawności naszego programu czy łatwiejsze testowanie.

Najpopularniejszymi IDE dla Javy są:

To które środowisko wybierzemy zależy tak naprawdę od nas, czyli naszych predyspozycji. Z naszej strony polecamy wybranie IntelliJ IDEA i z tego narzędzia będziemy korzystali w przykładach. Oczywiście wystarczy nam darmowa wersja Community.

Poniżej print screeny z procesu instalacji IntelliJ IDEA na systemie Windows:

Pierwszy program

Mając już JDK i wybrane IDE możemy przystąpić do napisania swojego pierwszego programu w języku Java.

Po pierwszym uruchomieniu IDEI powinniśmy zobaczyć okno z wyborem kolorystyki. Wybór według własnych preferencji.

W następnym okienku możemy wybrać różne ustawienia i dodatki - zostawmy te domyślne.

Tutaj również zostawiamy ustawienia domyślne i klikamy “Start using IntelliJ IDEA”.

Pojawia nam się okno startowe:

Wybieramy opcję “Create New Project”.

W nowo otwartym oknie musimy wskazać IDEI lokalizację naszego SDK, klikamy “New” i wybieramy miejsce instalacji SDK w naszym systemie (w przypadku systemu Windows będzie to C:\Program Files\Java\jdk-10). Następnie klikamy dwukrotnie “Next”.

W kolejnym oknie musimy wpisać nazwę naszego projektu, podajemy “kodolamacz-first-challenge” i klikamy “Finish”.

Otworzyło nam się główne okno IDEI z naszym projektem.

To jednak tylko pusty projekt. Teraz musimy napisać swój pierwszy kawałek kodu. W tym celu rozwijamy drzewo z lewej strony z nazwą naszego projektu i na katalogu “src” klikamy prawym przyciskiem myszy i wybieramy opcję “New” a następnie “Java Class”. W nowo otwartym oknie jako nazwę wpisujemy “pl.kodolamacz.MyFirstJavaApplication” i klikamy “Ok”

W rezultacie dostajemy poniższy kod:

package pl.kodolamacz;

public class MyFirstJavaApplication {
}

Czym są klasy Java dowiemy się później, na razie potraktujmy je jako sposób organizacji kodu, czyli naszych poleceń, w świecie Java. Klasy będą się znajdować w plikach z rozszerzeniem .java.

W aktualnej wersji nasz kod jeszcze nic nie robi, to tylko szablon. Najprostrszą operacją jaką możemy kazać wykonać komputerowi jest wyświetlenie napisu. By tego dokonać należy najpierw dodać tak zwaną metodę main którą można uruchomić, czyli coś w rodzaju punktu startowego naszego programu. Nasz kod powinien wyglądać tak:

package pl.kodolamacz;

public class MyFirstJavaApplication {

    public static void main(String[] args) {

    }

}

Teraz możemy skorzystać z funkcji println:

package pl.kodolamacz;

public class MyFirstJavaApplication {

    public static void main(String[] args) {
        System.out.println("Witaj świecie!");
    }

}

Funkcja println wyświetla dowolny ciąg znaków na tak zwanym standardowym wyjściu. Jest to jeden z możliwych sposobów komunikacji z naszym programem. Więcej o strumieniach możemy przeczytać na Wikipedii. Żeby skorzystać ze standardowego wyjścia musimy skorzystać z klasy System służącą między innymi do obsługi standardowych strumieni w Javie. W tej klasie możemy skorzystać z pola out gdzie mamy dostępną funkcję println. Temat pól w klasach (ang. field) także zostanie szczegółowo omówiony w kolejnych naszych wydarzeniach.

Teraz czas najwyższy by uruchomić nasz program! Klikamy w dowolnym miejscu naszego kodu prawym przyciskiem myszki i wybieramy opcję “Run ‘MyFirstJavaApplication….main()’” lub naciskamy kombinację klawiszy Ctrl+Shift+F10. Na dole ekranu powinniśmy zobaczyć wynik wykonania naszego programu, czyli oczekiwany napis:

Witaj świecie!

Process finished with exit code 0

Jeśli napis się nie wyświetlił, trzeba sprawdzić czy wszystkie nawiasy i średniki są na swoim miejscu.

Gratulacje! Udało Ci się napisać i uruchomić swój pierwszy program w języku Java. Jest to tak zwany “Hello world” czyli program wyświetlający napis “Witaj świecie” i najczęściej właśnie od takiego programu zaczynamy naukę nowego lub nawet pierwszego języka programowania lub biblioteki.

Jednak na tym nie skończymy. Do wyświetlenia napisu “Witaj świecie” użyliśmy standardowego wyjścia. Teraz użyjemy standardowego wejścia, żeby pobrać od użytkownika jakiś napis:

package pl.kodolamacz;

import java.util.Scanner;

public class MyFirstJavaApplication {

    public static void main(String[] args) {
        System.out.println("Witaj świecie!");

        Scanner scanner = new Scanner(System.in);
        String userString = scanner.nextLine();
        scanner.close();

        System.out.println("Twój napis to: " + userString);
    }

}

Wykorzystaliśmy do tego klasę Scanner przekazując do niej standardowe wejście (System.in). W klasie Scanner mamy metodę nextLine() która pozwala nam odczytać linijkę tekstu wpisanego przez użytkownika. Następnie przypisujemy tą linijkę do zmiennej userString i wyświetlamy na standardowym wyjściu. Zmiennym poświęcimy następne wyzwania, na ten moment załóżmy, że jest to jakiś pojemnik na dane tekstowe, które w świecie Javy oznaczamy jako String.

Gdy uruchomimy nasz program i wpiszemy jakąś linię tekstu (pod napisem Witaj świecie, np. odpowiedź “Witaj”) potwierdzając to klawiszem Enter, program powinien wyświetlić nam wpisaną linijkę tekstu jak poniżej:

Witaj świecie!
Witaj
Twój napis to: Witaj

Process finished with exit code 0

Wyzwanie

Teraz zadanie dla Was! Korzystając ze standardowych strumieni w Javie i zdobytej wiedzy napiszcie program, który wyświetla prośbę o podanie imienia i następnie nazwiska, pobiera te dwa napisy od użytkownika, a następnie wyświetla obydwa jak w przykładzie poniżej:

Proszę podaj swoje imię:
Jan
Proszę podaj swoje nazwisko:
Kowalski
Witaj Jan Kowalski

Rozwiązanie wyzwania #1 opublikujemy w piątek na stronie naszego wydarzenia na Facebooku. W międzyczasie będziemy tam też zamieszczać materiały dodatkowe, które uzupełnią Waszą wiedzę na temat Javy i pracy programisty.

Jak uda się Wam poprawnie wykonać zadanie - pochwalcie się tym koniecznie w przeznaczonym do tego poście na FB!

Kolejna część wyzwania za tydzień, 23 kwietnia o godz. 10:00.

Powodzenia!


Wszystkie wspisy z serii #javowewyzwanie:

Wprowadzenie

Wyzwanie 1 - Hello world!

Wyzwanie 2 - Podstawowe instrukcje

Wyzwanie 3 - Programowanie obiektowe

Wyzwanie 4 - Algorytmy i struktury danych w języku Java

Wyzwanie 5 - Interfejsy i dziedziczenie

Wyzwanie 6 - Operacje wejścia - wyjścia

Wyzwanie 7 - Programowanie funkcyjne


Materiały dodatkowe do wyzwania:

Wprowadzenie do świata języka Java

Czego się uczyć by zostać programistą?

Java od środka, czyli jak to wszystko działa?

Wprowadzenie do Apache Maven, czyli jak tworzy się projekty w świecie Java

Wprowadzenie do testowania aplikacji w środowisku Java

6 książek, które powinien przeczytać każdy programista Java

Radosław Szmit

Opiekun bootcampu Full-stack w Kodołamacz.pl. Inżynier oprogramowania, specjalista Big Data, trener IT. Absolwent Politechniki Warszawskiej aktualnie pracujący nad rozprawą doktorską z zakresu Big Data i NLP. Twórca polskiej wyszukiwarki internetowej NEKST stworzonej przez Instytut Podstaw Informatyki Polskiej Akademii Nauk oraz Otwartego Systemu Antyplagiatowego realizowanego przez Międzyuniwersyteckie Centrum Informatyzacji. Zawodowo konsultant IT specjalizujący się w rozwiązaniach Java Enterprise Edition, Big Data oraz Business Intelligence, trener IT w firmie Sages.
Komentarze
Ostatnie posty
Data Science News #204
Data Science News #203
Data Science News #202
Data Science News #201