1PIERWSZE KROKI
Ten rozdział rozpoczniemy od zainstalowania na komputerze oprogramowania Java, Eclipse oraz Android Studio. Następnie zaznajomimy się z podstawowymi technikami programowania w języku Java, testując wybrane polecenia w interaktywnym narzędziu wiersza poleceń JShell.
Java to wieloplatformowy język programowania o ogromnych możliwościach, który można za darmo pobrać i zainstalować w systemie Windows, macOS lub Linux. Eclipse, zintegrowane środowisko programistyczne (IDE, Integrated Development Environment), to cieszący się powszechnym uznaniem zestaw narzędzi do szybkiego i łatwego budowania aplikacji Java. Natomiast Android Studio to środowisko programistyczne do rozwijania aplikacji mobilnych Android w języku Java. Umożliwia ono programowanie własnych gier oraz aplikacji mobilnych na telefony, tablety i nie tylko.
Java dla systemów Windows, macOS oraz Linux
Jedną z ogromnych zalet języka Java jest to, iż napisane w nim programy mogą działać na dowolnym komputerze, na którym zainstalowane zostało oprogramowanie Java Virtual Machine (JVM) (czasami nazywane także Java Runtime Environment lub JRE). Technologia JVM sprawia, że wystarczy raz napisać program, aby później uruchamiać ten sam kod w dowolnym systemie operacyjnym (Windows, macOS, Linux, Android i nie tylko).
Ta koncepcja wydaje się oczywista, jednak większość innych języków programowania wymaga albo napisania innego kodu dla komputerów Windows, macOS, Linux oraz smartfonów, albo skompilowania osobnej wersji dla każdego z systemów operacyjnych. Środowisko uruchomieniowe JVM eliminuje taką konieczność.
Rysunek 1.1 prezentuje tę samą aplikację graficzną Java uruchomioną w systemach Windows, macOS oraz Ubuntu Linux.
Rysunek 1.1. Ten sam kod Java uruchomiony w trzech różnych systemach operacyjnych: Windows, macOS oraz Linux!
Ta prosta, ale bardzo istotna koncepcja przyczyniła się do ogromnej popularności języka Java wśród programistów i firm na całym świecie.
Instalowanie wersji Java 8 oraz 9 dla programistów
Java Development Kit (JDK) to wersja technologii Java dla deweloperów i programistów, czyli także dla Ciebie! JDK pozwala na pisanie i kompilowanie własnych aplikacji Java, które można udostępniać znajomym, wdrażać w firmie lub uruchamiać w dowolnym miejscu na niemal dowolnym urządzeniu.
Zainstalujemy zarówno wersję 8, jak i wersję 9 JDK. Dzięki temu będziemy mogli korzystać z ogólnej dostępności wersji 8, jednocześnie zachowując dostęp do najnowszych funkcji wersji 9.
Aby zainstalować pakiet JDK 8:
1. Otwórz stronę http://jdk.java.net/8/.
2. Kliknij przycisk opcji Accept License Agreement (Zaakceptuj umowę licencyjną).
3. Na liście Downloads, w sekcji JDK, znajdź link dla swojego systemu operacyjnego i kliknij go. Jeśli korzystasz z systemu operacyjnego Windows lub Linux, wybierz wersję 64-bitową.
4. Otwórz plik JDK z folderu Downloads na swoim komputerze i zainstaluj JDK.
Aby zainstalować pakiet JDK 9, przejdź do strony http://jdk.java.net/9/, a następnie powtórz kroki 2-4 instalacji pakietu JDK 8.
Uwaga:Bardziej szczegółowe instrukcje w postaci wideo zawiera kurs internetowy powiązany z tą książką: http://www.udemy.com/java-the-easy-way/.
To wystarczy, aby przygotować komputer do kompilowania i uruchamiania programów Java z tekstowego wiersza poleceń lub terminalu, ale my chcemy również skorzystać z możliwości tworzenia w języku Java aplikacji z graficznym interfejsem użytkownika (GUI, Graphical User Interface), jak te pokazane na rysunku 1.1. Aby móc korzystać ze wspaniałych możliwości GUI technologii Java, zainstalujemy zintegrowane środowisko programistyczne o nazwie Eclipse.
Instalowanie programu Eclipse IDE for Java Developers
Eclipse jest jednym z najpopularniejszych środowisk IDE do programowania w języku Java. Co więcej, jest to rozwiązanie typu open source, co oznacza, że można używać go za darmo, zarówno do celów prywatnych, jak i komercyjnych, oraz że istnieje aktywna społeczność open source, która wspiera i stale ulepsza rozwiązanie Eclipse. Istnieje kilka innych środowisk IDE dla języka Java, ale Eclipse słynie z łatwości programowania aplikacji Java. Dodatkowo jego instalacja jest dość prosta.
Aby zainstalować program Eclipse na własnym komputerze, należy otworzyć stronę http://www.eclipse.org/downloads/, pobrać instalator dla odpowiedniego systemu operacyjnego (patrz rys. 1.2), a następnie uruchomić go. W momencie powstawania tej książki aktualna wersja nosiła nazwę Eclipse Oxygen.
Wyświetlone zostanie menu podobne do przedstawionego na rysunku 1.3. Należy wybrać opcję Eclipse IDE for Java Developers i kliknąć Install (Zainstaluj). Ważne jest, aby wybrać opcję Eclipse IDE for Java Developers, a nie jedną z pozostałych opcji (edycja Java EE, czyli Enterprise Edition, nie oferuje wszystkich funkcji prezentowanych w tej książce).
Proces instalacji może zająć kilka minut.
Rysunek 1.2. Pobieranie instalatora programu Eclipse dla wybranego systemu operacyjnego
Rysunek 1.3. Wybieranie opcji Eclipse IDE for Java Developers z menu instalatora Eclipse
Konfigurowanie środowiska Eclipse
Skonfigurujmy naszą instalację Eclipse w taki sposób, aby wyglądała i działała jak profesjonalne środowisko programistyczne - wraz z edytorem WindowBuilder, a także systemem kolorów ułatwiającym kodowanie oraz z czytelnymi czcionkami.
Uruchamiamy program Eclipse, klikając ikonę Eclipse. Po jego uruchomieniu zazwyczaj wyświetlane jest pytanie, gdzie ma być przechowywana przestrzeń robocza (ang. workspace), w której umieszczane są wszystkie projekty Java (patrz rys. 1.4). Można użyć domyślnej lokalizacji (w systemie Windows jest nią folder C:\Users\<NazwaUżytkownika>\eclipse-workspace\, w systemie macOS /Users/<NazwaUżytkownika>/Documents/eclipse-workspace/, a w systemie Linux /home/<NazwaUżytkownika>/eclipse-workspace/). Można również określić niestandardową lokalizację folderu obszaru roboczego Java.
Rysunek 1.4. Eclipse rozpoczyna od pytania, gdzie mają być przechowywane projekty Java
Jeśli nie mamy żadnych preferencji, możemy użyć domyślnej lokalizacji eclipse-workspace. Niezależnie od wybranej opcji, należy zapamiętać lokalizację tego folderu, ponieważ będą w nim przechowywane wszystkie tworzone projekty Java. Gdy zaznaczymy pole "Use this as the default and do not ask again" (Użyj tego ustawienia jako domyślnego i nie ponawiaj pytania), okno Eclipse Launcher nie będzie wyświetlane podczas każdego uruchomienia programu Eclipse. Aby korzystać z wielu przestrzeni roboczych, można pozostawić to pole wyboru odznaczone, aby z łatwością przełączać się między przestrzeniami roboczymi w trakcie uruchamiania programu Eclipse.
PRZYGOTOWANIE PROGRAMU ECLIPSE DO UŻYCIA JAVA 9
W przypadku problemów z uruchomieniem programu Eclipse trzeba dokonać jeszcze jednej zmiany. W czasie powstawania tej książki Java 9 nadal była nowością i choć Oxygen i późniejsze wersje programu Eclipse obsługują Java 9, niektóre wydania wymagają dostosowania pliku konfiguracyjnego eclipse.ini, by mogły być uruchamiane z zainstalowaną wersją Java 9. Aby dokonać tej zmiany, należy postępować zgodnie z następującą instrukcją:
1. Znajdź plik instalacyjny programu Eclipse:
- W systemie Windows można kliknąć skrót Eclipse prawym przyciskiem myszy i wybrać opcję Otwórz lokalizację pliku. Plik eclipse.ini będzie znajdował się w tym samym folderze co plik programu eclipse.exe.
- W systemie macOS znajdź aplikację Eclipse w folderze Applications w narzędziu Finder, przytrzymując klawisz CONTROL, kliknij ikonę aplikacji Eclipse, a następnie wybierz opcję Pokaż zawartość pakietu. Po otworzeniu folderu Contents, a następnie folderu Eclipse, na liście plików wyświetlony zostanie plik eclipse.ini.
- W systemie Linux przejdź do folderu home i otwórz eclipse/java-oxygen/eclipse, aby znaleźć plik eclipse.ini.
2. Kliknij plik eclipse.ini prawym przyciskiem myszy (lub kliknij lewym, przytrzymując klawisz CONTROL). Wybierz opcję Otwórz za pomocą, a następnie wybierz opcję Notepad (Notatnik), TextEdit lub inny edytor tekstowy.
3. Dodaj następujący wiersz na końcu pliku eclipse.ini:
--add-modules=ALL-SYSTEM
4. Zapisz plik eclipse.ini, a następnie ponownie otwórz program Eclipse. Od tej pory program Eclipse powinien uruchamiać się prawidłowo.
Podczas pierwszego uruchomienia programu Eclipse wyświetlony zostanie ekran powitalny. W niektórych wersjach programu ekran ten zawiera kilka przykładowych projektów i samouczków, które mogą okazać się przydatne. Po wstępnym zapoznaniu się z przedstawionymi funkcjami można zamknąć kartę Welcome, klikając mały X znajdujący się w górnej części okna.
Instalowanie edytora WindowBuilder
Najważniejszym ulepszeniem naszego środowiska Eclipse będzie zainstalowanie edytora WindowBuilder, który umożliwi nam budowanie aplikacji okienkowych przez przeciąganie i upuszczanie elementów GUI (takich jak przyciski, etykiety czy pola tekstowe) na obszar graficznego podglądu aplikacji.
W niektórych wersjach Eclipse edytor WindowBuilder jest już zainstalowany, mimo to przeprowadzimy procedurę jego instalacji lub aktualizacji, aby upewnić się, że jesteśmy gotowi do budowania aplikacji GUI w rozdziale 3.
Zaczynamy od otworzenia strony http://www.eclipse.org/windowbuilder/ i kliknięcia przycisku Download (Pobierz). Na stronie pobierania znajdujemy wersję WindowBuilder pasującą do wersji Eclipse (w przypadku Eclipse Oxygen jest to wersja 4.7), prawym przyciskiem myszy (lub przytrzymując klawisz CONTROL) klikamy odpowiedni link i kopiujemy jego adres, jak pokazano na rysunku 1.5.
Rysunek 1.5. Znajdowanie odnośnika do pobrania najnowszego edytora WindowBuilder i kopiowanie jego adresu
Następnie wracamy do programu Eclipse i wybieramy opcję Help (Pomoc) - Install New Software (Zainstaluj nowe oprogramowanie). W polu tekstowym Work with: (Korzystaj z) wklejamy adres URL edytora WindowBuilder (dla Eclipse Oxygen jest to http://download.eclipse.org/windowbuilder/WB/integration/4.7/), klikamy przycisk Add... (Dodaj...), a następnie w wyświetlonym oknie wpisujemy WB w polu Name (Nazwa), jak pokazano na rysunku 1.6.
Klikamy przycisk OK i po pojawieniu się w oknie instalacji pola wyboru WindowBuilder klikamy przycisk Select All (Zaznacz wszystko), aby zainstalować wszystkie potrzebne komponenty WindowBuilder. Klikamy przycisk Next (Następny), aż pojawi się przycisk opcji do zaakceptowania umowy licencyjnej, a następnie klikamy przycisk Finish (Zakończ).
Rysunek 1.6. Dodawanie edytora WindowBuilder przy użyciu okna Install New Software (Zainstaluj nowe oprogramowanie) programu Eclipse
Instalacja oprogramowania może zająć kilka minut. W prawym dolnym rogu okna Eclipse wyświetlony zostanie wskaźnik postępu. Po zakończeniu instalacji zostaniemy poproszeni o zrestartowanie programu Eclipse. Klikamy przycisk Restart Now (Zrestartuj teraz). Instalacja edytora WindowBuilder została zakończona. Teraz dodamy kilka opcjonalnych zmian, które ułatwią czytanie kodu w programie Eclipse przez dostosowanie tła, kolorów tekstu oraz czcionki.
Dostosowywanie wyglądu i działania programu Eclipse
Po zainstalowaniu wymaganych elementów możemy dodatkowo dostosować wygląd programu Eclipse. W systemach Windows oraz Linux można uzyskać dostęp do menu preferencji, wybierając opcje Okno - Preferencje. W systemie macOS należy przejść do paska menu i wybrać opcje Eclipse - Preferences (Preferencje).
Na przykład można zmienić motyw (ang. theme), czyli paletę kolorów oraz rozmiar czcionki wykorzystywanej w edytorze tekstowym. W zależności od rozmiaru monitora i środowiska, w którym programujemy, paleta kolorów oraz rozmiar czcionki mogą znacząco wpływać na czytelność, wygodę użycia, a nawet produktywność.
W menu preferencji, w sekcji General (Ogólne) - Appearance (Wygląd) dostępna jest opcja Theme (Motyw). Można tu wybrać jeden z ulubionych motywów, takich jak Classic (jasne, szarawe tło z ciemnym kolorem czcionki) lub Dark (czarne tło z jaśniejszymi, bardziej kolorowymi czcionkami). Ja preferuję motyw Dark, ponieważ tekst wydaje się jaśniejszy na ciemnym tle, co ułatwia czytanie z monitora lub ekranu projekcyjnego.
Po wybraniu General (Ogólne) - Appearance (Wygląd) - Colors and Fonts (Kolory i Czcionki) można zmienić rozmiar czcionki. Po prawej stronie, w panelu Colors and Fonts wybieramy opcje Basic (Podstawowy) - Text Font (Czcionka tekstu) i klikamy przycisk Edit (Edytuj). Wyświetlone zostanie menu Font (Czcionka). Wybieramy czcionkę łatwą w czytaniu. Ja preferuję Courier New lub Consolas. Polecam rozmiar czcionki 18 do 20 oraz styl Bold (Pogrubiona). W oknie Font zademonstrowany zostanie przykładowy wygląd wybranej czcionki, stylu i rozmiaru, jak pokazano na rysunku 1.7.
Rysunek 1.7. Menu preferencji Colors and Fonts (po lewej) oraz menu preferencji Font (po prawej)
Po dokonaniu wyboru klikamy przycisk OK i powracamy do głównej przestrzeni roboczej Eclipse. Efekty ustawionych preferencji będziemy mogli obejrzeć, gdy rozpoczniemy kodowanie w edytorze tekstowym Java w rozdziale 2.
Instalowanie Android Studio do tworzenia aplikacji mobilnych
Android Studio to oficjalne środowisko do tworzenia aplikacji mobilnych w systemie Android. Umożliwia ono projektowanie i kodowanie aplikacji mobilnych przy użyciu języka Java, który jest głównym językiem platformy Android. Podobnie jak Java i Eclipse, oprogramowanie Android Studio można pobierać, instalować i wykorzystywać za darmo. Ze względu na duży rozmiar, pobieranie oraz instalacja Android Studio mogą zająć od kilku minut do nawet kilku godzin, w zależności od jakości połączenia internetowego.
Aby pobrać Android Studio, przechodzimy do strony http://developer.android.com/studio/ i klikamy przycisk Download Android Studio (Pobierz Android Studio), jak pokazano na rysunku 1.8. Po zapoznaniu się z warunkami umowy klikamy przycisk Download Android Studio for <system operacyjny>.
Postępujemy zgodnie z instrukcjami, aby dokonać instalacji. Proces instalacji może wiązać się z pobraniem dodatkowych komponentów zestawu narzędzi dla programistów (SDK, Software Development Kit). Po pobraniu wszystkich komponentów instalacja może zająć kilka dodatkowych minut.
Rysunek 1.8. Android Studio to oficjalne środowisko do rozwijania aplikacji mobilnych Android
Poznawanie języka Java przy użyciu narzędzia JShell
Skoro skonfigurowaliśmy już nasze środowisko programistyczne, możemy przetestować jego funkcjonowanie przy użyciu JShell, interaktywnego interpretera dla języka Java. JShell stanowi doskonały sposób na rozpoczęcie nauki języka Java, ponieważ od razu reaguje na wpisywany kod. W poprzednich wersjach Javy trzeba było wpisać cały program, skompilować go i uruchomić, aby zobaczyć wynik. Obecnie, dzięki JShell, wystarczy wpisać pojedynczy wiersz kodu Javy, taki jak System.out.println("Hello, Java!"), a następnie nacisnąć klawisz ENTER, aby od razu zobaczyć wynik na ekranie (patrz rys. 1.9).
Rysunek 1.9. JShell w Java 9 pozwala na szybkie testowanie kodu w interaktywnym narzędziu wiersza poleceń
Dowolna prawidłowa instrukcja Java będzie działała w JShell, dlatego jest to doskonałe narzędzie do nauki podstaw kodowania w języku Java. Pora zabrać się do pracy!
Uruchamianie JShell
JShell można uruchamiać zarówno z wiersza poleceń, jak i przez skonfigurowanie skrótu. Przedstawimy obie możliwości na wypadek, gdyby jedna z nich nie działała prawidłowo.
Przede wszystkim na komputerze musi być zainstalowany pakiet JDK 9. Możemy sprawdzić, czy tak jest, korzystając z wiersza poleceń.
Oto, w jaki sposób można uruchomić interfejs wiersza poleceń w systemie Windows, macOS oraz Linux:
- W systemie Windows otwórz wiersz poleceń, przechodząc do menu Start i wpisując cmd w polu wyszukiwania. Naciśnij klawisz ENTER lub kliknij ikonę Command Prompt (Wiersz poleceń).
- W systemie macOS otwórz Launchpad i wpisz terminal w polu wyszukiwania. Kliknij ikonę aplikacji Terminal.
- W systemie Linux wyszukaj terminal i kliknij ikonę aplikacji Terminal.
Wyświetlone zostanie okno wiersza poleceń. Wystarczy wpisać java -version po zgłoszeniu systemu, a Java poinformuje, która wersja JDK jest zainstalowana. W systemie Windows wydruk wygląda podobnie do poniższego:
C:\Users\Payne> java -version
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+153)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+153, mixed mode)
Natomiast w systemach macOS oraz Linux przedstawiona zostanie następująca informacja:
Payne:~ payne$ java -version
java version "1.9.0_33"
Java(TM) SE Runtime Environment (build 1.9.0_33)...
Jeśli odpowiedź zawiera tekst "version 9" lub "version 1.9", jak przedstawiono powyżej, można rozpocząć pracę z JShell. Aby uruchomić JShell z wiersza poleceń, należy przejść do kolejnej części rozdziału, "Uruchamianie JShell z wiersza poleceń". Jeżeli wyświetlona została informacja o wcześniejszej wersji Java, takiej jak 1.8, trzeba wrócić do poprzedniego punktu, "Instalowanie wersji Java 8 oraz 9 dla programistów", na stronie 2 i zainstalować JDK 9. O ile wersja 9 nie pojawia się w wierszu poleceń mimo jej zainstalowania lub jeśli wolisz skonfigurować skrót na pulpicie, przejdź prosto do punktu "Uruchamianie JShell przy użyciu skrótu" na stronie 12.
Uruchamianie JShell z wiersza poleceń
Aby uruchomić JShell z wiersza poleceń, wpisujemy jshell i naciskamy klawisz ENTER. Java zareaguje wiadomością powitalną JShell i zgłoszeniem systemu, który w systemie Windows wygląda następująco:
C:\Users\Payne> jshell
| Welcome to JShell -- Version 9-ea
| For an introduction type: /help intro
jshell>
W systemach macOS oraz Linux wiadomość oraz zgłoszenie systemu wyglądają podobnie:
Payne:~ payne$ jshell
| Welcome to JShell -- Version 9-ea
| For an introduction type: /help intro
jshell>
Jeśli pojawi się zgłoszenie systemu jshell>, można przejść do punktu "Korzystanie z wyrażeń Java w JShell" ze strony 13. Jeśli polecenie jshell nie działa na Twoim komputerze po zainstalowaniu JDK 9, spróbuj postępować zgodnie z procedurą zaprezentowaną w kolejnej części rozdziału.
Uruchamianie JShell przy użyciu skrótu
Jeśli masz problemy z uruchomieniem narzędzia JShell z wiersza poleceń lub wolisz uruchamiać je przy użyciu skrótu na pulpicie, postępuj zgodnie z podanymi instrukcjami, aby uzyskać dostęp do JShell bezpośrednio z folderu JDK 9 bin i skonfigurować skrót (nazwa folderu bin stanowi skrót od plików binarnych, czyli programów zapisanych w języku komputerowym składającym się z samych jedynek i zer).
Uwaga:Niestety opisywana metoda nie sprawdza się w systemie Linux, ale zazwyczaj działa w nim metoda bazująca na wierszu poleceń.
JShell można znaleźć w następujących folderach:
- C:\Program Files\Java\jdk-9\bin\jshell.exe w systemie Windows,
- /Library/Java/JavaVirtualMachines/jdk9.jdk/Contents/Home/bin/jshell w systemie macOS.
Folder JDK może nosić nazwę jdk-1.9.x zamiast jdk-9, ale będzie działał w taki sam sposób. Przechodzimy do folderu JDK 9 bin na własnym komputerze i odnajdujemy plik JShell, jak pokazano na rysunku 1.10.
Możemy kliknąć dwukrotnie ikonę pliku JShell, aby uruchomić narzędzie JShell. Dla wygody możemy również utworzyć skrót, aby uruchamiać narzędzie JShell bezpośrednio z pulpitu:
- W systemie Windows kliknij prawym przyciskiem myszy jshell.exe i wybierz opcję Utwórz skrót. System Windows wyświetli komunikat "Windows can't create a shortcut here. Do you want the shortcut to be placed on the desktop instead (System Windows nie może utworzyć skrótu w tym miejscu. Czy umieścić ten skrót na pulpicie)?" Kliknij Yes (Tak).
- W systemie macOS kliknij plik jshell, przytrzymując klawisz CONTROL i wybierz opcję Make Alias (Utwórz alias). Pojawi się plik o nazwie jshell alias. Przeciągnij go na pulpit.
Teraz wystarczy dwukrotnie kliknąć ikonę na pulpicie, aby uruchomić narzędzie JShell i rozpocząć kodowanie w języku Java.
Rysunek 1.10. Plik programu JShell w folderze bin JDK 9 w systemie Windows (po lewej) i macOS (po prawej)
Korzystanie z wyrażeń Java w JShell
Wyrażenie to dowolna kombinacja wartości (takich jak liczby czy tekst) oraz operatorów, która daje w wyniku inną wartość. Operator wykonuje działanie, takie jak dodawanie, odejmowanie, mnożenie czy dzielenie. W języku Java symbole wykorzystywane dla tych operatorów to odpowiednio: +, -, * oraz /. Przetestujmy jeden z nich przy użyciu prostego wyrażenia matematycznego. Po zgłoszeniu systemu JShell wpisujemy 2+2 i naciskamy klawisz ENTER:
jshell> 2+2
$1 ==> 4
JShell prezentuje odpowiedź: wyrażenie 2+2 ma wartość 4. $1 to zmienna tymczasowa. JShell tworzy tego typu zmienne w celu przechowania wartości. W tym przykładzie zmienna $1 tymczasowo przechowuje wartość 4, na wypadek, gdybyśmy chcieli użyć jej w przyszłości. Jeśli chcemy sprawdzić, jaka wartość znajduje się w zmiennej, wystarczy wpisać ją w JShell. Na przykład, gdy teraz wpiszemy $1, JShell poinformuje, że zmienna $1 przechowuje wartość 4:
jshell> $1
$1 ==> 4
Przetestujmy inne wyrażenie. Tym razem połączymy dwa ciągi tekstowe. Ciągi, czasami nazywane łańcuchami, to znaki umieszczone w cudzysłowie, które służą do wyświetlania słów, nazw i innych tekstów. Do łączenia ciągów można użyć operatora + w następujący sposób:
jshell> "Twoje" + "Imię"
$3 ==> "TwojeImię"
Jak widać, utworzona została inna zmienna tymczasowa, w tym przypadku $3. Liczba po $ wskazuje, w którym wierszu kodu wpisane zostało wyrażenie. Jest to nasz trzeci wpis, dlatego JShell przechowa "TwojeImię" w zmiennej $3.
Warto zauważyć, że Java łączy, czyli dodaje, dwa ciągi, nie rozdzielając ich spacją. Jeśli chcemy, aby między dwoma łączonymi ciągami znajdowała się spacja, musimy umieścić ją między nimi w cudzysłowie:
jshell> "Twoje" + " " + "Imię"
$4 ==> "Twoje Imię"
JShell może wykonać dowolne prawidłowe wyrażenie Java. Przetestuj kilka innych wyrażeń. Aby edytować wpisaną instrukcję, wystarczy nacisnąć klawisz strzałki w górę. JShell wyświetli ostatnio wpisaną instrukcję, umożliwiając jej edytowanie i ponowne uruchomienie po naciśnięciu klawisza ENTER. Naciśnięcie klawisza strzałki w górę więcej niż jeden raz pozwala na przechodzenie po historii wcześniejszych instrukcji aż do pierwszego wpisanego wiersza kodu.
Deklarowanie zmiennych Java w JShell
Wykonywanie wyrażeń na prostych wartościach czasem się przydaje, ale zazwyczaj chcemy przechować wartości w zmiennych, aby móc wykorzystywać je w przyszłości. Do tej pory JShell automatycznie tworzył dla nas zmienne tymczasowe, takie jak $1 oraz $3, jednak możemy również samodzielnie tworzyć, czyli deklarować, zmienne.
Zmienne liczbowe
Utwórzmy zmienną liczbową (liczbę całkowitą) o nazwie x i przechowajmy w niej wartość 42. Java przechowuje liczby całkowite w zmiennych typu int, dlatego po zgłoszeniu systemu JShell wpisujemy int x = 42:
jshell> int x = 42
x ==> 42
Znak równości (=) stanowi w języku Java operator przypisania, co oznacza, że służy on do przypisywania zmiennej określonej wartości. JShell reaguje, informując, iż zmienna x zawiera wartość 42. Teraz, gdy chcemy użyć tej wartości, wystarczy wywołać zmienną za pomocą jej nazwy. Sprawdźmy, ile wynosi x * 2 (x razy dwa):
jshell> x * 2
$6 ==> 84
Java wykorzystuje znak gwiazdki (*) w roli symbolu mnożenia, a JShell informuje nas, że x * 2 równa się 84. Tu jednak pojawia się pytanie: czy zmodyfikowaliśmy wartość zmiennej x, pobierając jej wartość i mnożąc tę wartość przez dwa? Przekonajmy się, wpisując x:
jshell> x
x ==> 42
Uff! Nasza zmienna x zachowała tę samą wartość, 42. To oznacza, że możemy używać wartości przechowywanej w zmiennej bez modyfikowania zmiennej.
A zatem, w jaki sposób możemy zmienić wartość przechowywaną w zmiennej? Wystarczy ponownie użyć operatora przypisania. Wpisujemy x = x + 7 po zgłoszeniu systemu JShell:
jshell> x = x + 7
x ==> 49
Zastąpiliśmy wartość przechowywaną w x, pobierając starą wartość x i dodając do niej 7. Od tej pory, gdy spytamy o wartość x, będziemy otrzymywać 49, dopóki nie dokonamy kolejnej modyfikacji. Możemy zmieniać wartość zmiennych tak często, jak to konieczne - dlatego są one nazywane zmiennymi.
Przetestujmy kilka zmiennych różnych typów. Korzystaliśmy już z liczby całkowitej, więc teraz spróbujmy użyć liczby dziesiętnej, nazywanej również zmiennoprzecinkową (ang. floating-point). W języku Java liczby dziesiętne są przechowywane w zmiennych typu double (skrót od ang. double-precision floating point, czyli liczb zmiennoprzecinkowych o podwójnej precyzji). W związku z tym utwórzmy zmienną double o nazwie metry i przechowajmy w niej liczbę dziesiętną 1.83:
jshell> double metry = 1.83
metry ==> 1.83
Java obsługuje liczby dziesiętne z taką samą łatwością jak liczby całkowite. Wykonajmy pewne operacje matematyczne i przekształćmy metry na centymetry:
jshell> double centymetry = metry * 100
centymetry ==> 183.0
Zamieniliśmy wartość w zmiennej metry na wartość w centymetrach, mnożąc ją przez 100.
Java obsługuje także inne typy liczbowe, jednak najczęściej będziemy wykorzystywać wartości typu int lub double. Za każdym razem, gdy napotkamy nowy typ zmiennej, otwieramy narzędzie JShell i przetestuj go na różnych wartościach.
Zmienne typu String
Zmienne typu String służą do przechowywania ciągów znaków tekstowych. Zdefiniujmy zmienną String o nazwie mojeImieNazwisko i przechowajmy w niej imię oraz nazwisko w następujący sposób (zamiast mojego imienia i nazwiska można oczywiście użyć swojego):
jshell> String mojeImieNazwisko = "Bryson Payne"
mojeImieNazwisko ==> "Bryson Payne"
Podobnie jak w przypadku zmiennych liczbowych, w roli operatora przypisania używamy znaku równości.
Uwaga:W języku Java wielkość liter w nazwach zmiennych, metod i klas ma znaczenie. Składająca się wyłącznie z małych liter nazwa mojeimienazwisko różni się od nazwy zawierającej wyłącznie wielkie litery MOJEIMIENAZWISKO, a obie różnią się od nazwy mojeImieNazwisko. Konwencją, czyli powszechnie przyjętym rozwiązaniem, w języku Java jest stosowanie notacji CamelCase, w której każdy kolejny wyraz w nazwie rozpoczyna się wielką literą np. mojeImieNazwisko czy toDziwnaNazwaDemonstrującaNotacjęCamelCase. W tej notacji słowa przypominają garby na grzbiecie wielbłąda (ang. camel). Nazwy klas również powinny przestrzegać notacji CamelCase i dodatkowo rozpoczynać się wielką literą.
A teraz użyjmy wartości przechowywanej w mojeImieNazwisko. Załóżmy, że zdobyliśmy dodatkowy stopień naukowy. Możemy dodać odpowiedni tytuł do imienia i nazwiska w następujący sposób:
jshell> mojeImieNazwisko + ", doktor"
$12 ==> "Bryson Payne, doktor"
Jak widać, nie użyliśmy operatora przypisania, a zatem wartość przechowywana w mojeImieNazwisko powinna nadal składać się jedynie z imienia i nazwiska, bez dodatkowych znaków.
Tym razem zmieńmy wartość przechowywaną w zmiennej mojeImieNazwisko. Dodamy formalny tytuł do imienia oraz nazwiska, jak byśmy adresowali list lub zaproszenie:
jshell> mojeImieNazwisko = "dr " + mojeImieNazwisko
mojeImieNazwisko ==> "dr Bryson Payne"
JShell prezentuje zaktualizowaną wartość przechowywaną w mojeImieNazwisko. W kolejnej części rozdziału będziemy kontynuować pracę ze zmiennymi liczbowymi i tekstowymi oraz pokażemy, jak wyświetlać wartości na ekranie z programu Java.
Drukowanie danych wyjściowych w języku Java
Do tej pory zajmowaliśmy się jedynie wyznaczaniem wartości wyrażeń, wpisując je w narzędziu JShell w celu sprawdzenia ich wartości. Jednak sytuacja zmieni się, gdy zaczniemy pisać prawdziwe programy. Podczas wpisywania kolejnych wierszy programu Java nie zobaczymy żadnych danych wyjściowych na ekranie.
Gdy chcemy wydrukować coś na ekranie, korzystamy z funkcji drukowania, takiej jak System.out.println(), która wyświetla wiersz danych wyjściowych w konsoli systemu lub na ekranie. Jeśli nadal korzystasz z tego samego okna JShell, można zobaczyć wartość przechowaną w zmiennej x w następujący sposób:
jshell> System.out.println(x)
49
W przypadku pojawienia się informacji o błędzie trzeba zadeklarować nową zmienną int x = 49, a następnie ponownie uruchomić instrukcję print.
Jak widać, tym razem JShell nie zareagował, wyświetlając x ==> 49, ponieważ nie prosiliśmy o wyznaczenie wartości wyrażenia. Instrukcja println() każe narzędziu JShell wydrukować jedynie to, co zostało umieszczone w nawiasie, czyli zmienną x. W efekcie JShell wyświetla po prostu 49.
Przetestujmy drukowanie ciągów tekstowych. Wpisujemy następującą instrukcję:
jshell> System.out.println("Cześć, " + mojeImieNazwisko)
Cześć, dr Bryson Payne
O ile nadal istnieje zmienna mojeImieNazwisko utworzona we wcześniejszej części rozdziału, Java powita nas po imieniu.
Gdy chcemy wyświetlić na ekranie informacje dla użytkownika, możemy to zrobić za pomocą instrukcji System.out.println().
Polecenia JShell
Narzędzie JShell jest tak łatwe w użyciu, iż może pojawić się pokusa, aby nigdy z niego nie wychodzić. Jednak w końcu musimy zająć się innymi zadaniami, takimi jak budowanie ekscytujących aplikacji komputerowych i mobilnych w języku Java. Przyjrzyjmy się poleceniom dostępnym w JShell wraz z poleceniem służącym do wyjścia z programu.
WPROWADZENIE
Język Java jest wykorzystywany na miliardach urządzeń na całym świecie. Począwszy od aplikacji mobilnych po oprogramowanie komputerowe, Java zasila największe rozwiązania korporacyjne i najmniejsze urządzenia osobiste. Studenci, profesjonaliści IT i osoby rozważające karierę w programowaniu stają przed koniecznością nauczenia się języka Java. Jako profesor informatyki, który uczy języka Java od prawie 20 lat, napisałem tę książkę, by pomóc czytelnikom w poznawaniu języka Java w taki sposób, w jaki sam nauczyłem się kodować: przez praktyczne projekty. Przekonałem się, że studenci najlepiej uczą się, budując prawdziwe aplikacje i gry, które są interesujące, wciągające i które warto pokazać znajomym. W tej książce utworzymy prostą zgadywankę Hi-Lo, aplikację Secret Messages do wymieniania sekretnych wiadomości z przyjaciółmi oraz interaktywną aplikację do rysowania o nazwie BubbleDraw. Doświadczenie w programowaniu nie jest wymagane, ale to praktyczne podejście do nauki ułatwi szybkie opanowanie języka również osobom, które znają już inny język programowania.
Dlaczego warto nauczyć się programowania?
Po pierwsze, ze względu na rynek pracy. Jak wynika z raportu amerykańskiego Biura Statystyk Pracy, siedem z dziesięciu zawodów o najszybciej rosnącym zapotrzebowaniu i najlepszej płacy związanych jest z sektorem IT. Programiści są poszukiwani przez pracodawców na całym świecie i w ciągu najbliższych kilku lat na rynku pracy zabraknie przynajmniej miliona specjalistów. Miejsce zamieszkania nie jest istotne, aby zarabiać pieniądze jako programista wystarczy mieć dostęp do internetu.
Wysokie zarobki i bezpieczeństwo zatrudnienia to nie jedyne argumenty przemawiające za nauką programowania. Kodowanie to rozwiązywanie problemów, a świat potrzebuje więcej ludzi, którzy umieją rozwiązywać problemy. Można pisać aplikacje, które łączą ludzi i pomagają im w pracy. Można wspierać nowe formy handlu, a nawet tworzyć całkiem nowe rynki zbytu. Można eliminować bariery, pomagać pojedynczym osobom, społecznościom lub całym kontynentom, a także otwierać nowe perspektywy. Dzięki ogromnemu zasięgowi internetu można napisać aplikację i udostępnić ją miliardom ludzi.
Drew Houston, założyciel Dropbox, twierdzi, że kodowanie to "najbliższy ekwiwalent supermocy", natomiast według Gaba Newella, współzałożyciela firmy Valve Corporation produkującej gry komputerowe, umiejętność kodowania sprawia, że "wyglądamy, jakbyśmy posiadali magiczną moc wyróżniającą nas na tle innych". Komputery są wśród nas, w każdym urządzeniu, każdym systemie i każdej sieci w naszym codziennym życiu. I to właśnie kod odpowiada za działanie wszystkich tych komputerów. Zdolność programowania to zdolność prosperowania w przyszłości high-tech.
Dlaczego warto programować w języku Java?
Java uznawana jest przez wielu za czołowy język programowania z kilku uzasadnionych przyczyn. Po pierwsze, może być wykonywana na praktycznie każdym urządzeniu, począwszy od komputerów stacjonarnych i laptopów po odbiorniki SMART TV. Ten sam kod Java może działać w systemie Windows, macOS lub Linux.
Po drugie, język Java jest wszechobecny w środowisku biznesowym i powszechnie wykorzystywany w największych systemach korporacyjnych. Java jest obiektowym językiem programowania zaprojektowanym w taki sposób, aby wspierać rozwijanie ogromnych aplikacji w różnych dziedzinach, od produkcji po sprzedaż, od zarządzania zasobami ludzkimi po księgowość.
Po trzecie, Java stanowi jeden z najpopularniejszych języków programowania w szkołach i uczelniach na całym świecie, dlatego jej znajomość pozwala od razu dołączyć do szeregu innych programistów.
Niezależnie od tego, czy kodowanie stanowi jedynie hobby, dodatkową bądź pełnoetatową działalność, język Java pozwala na łatwe rozpoczęcie pracy bez ponoszenia jakichkolwiek kosztów finansowych. Język Java stanowi doskonały pierwszy język programowania, a także wspaniały kolejny język dla osób, które mają już doświadczenie w kodowaniu.
Co można znaleźć w tej książce
Oto krótki przegląd zawartości poszczególnych rozdziałów:
W rozdziale 1 omówiony zostanie proces instalowania i przygotowywania oprogramowania Java, Eclipse oraz Android Studio. Napiszemy także pierwsze polecenia Java przy użyciu interaktywnego narzędzia JShell.
W rozdziale 2 napiszemy pierwszą aplikację, zgadywankę Hi-Lo, czyli tekstowy program wiersza poleceń, w którym użytkownicy będą zgadywać liczbę od 1 do 100. W rozdziale 3 ulepszymy naszą zgadywankę, otrzymując komputerową aplikację z graficznym interfejsem użytkownika zawierającym etykiety, pole tekstowe i klikalny przycisk.
W rozdziale 4 zbudujemy naszą pierwszą aplikację mobilną na systemy Android, korzystając z dużej części kodu zgadywanki Hi-Lo napisanego w poprzednich dwóch rozdziałach. Po ukończeniu aplikacji mobilnej w rozdziale 5 dodamy kilka ulepszeń, takich jak menu ustawień oraz tablica rekordów.
W rozdziale 6 zaczniemy pisanie nowej aplikacji Secret Messages, czyli tekstowego programu, który będzie szyfrował wiadomości przy użyciu kodu Cezara. W rozdziale 7 ulepszymy graficzny interfejs aplikacji, dodając suwak, który pozwoli na szybkie odszyfrowywanie wiadomości przez złamanie kodu Cezara. Następnie w rozdziale 8 utworzymy mobilną aplikację Secret Messages z funkcją udostępniania, która ułatwi przesyłanie sekretnych wiadomości za pośrednictwem poczty e-mail, wiadomości tekstowych lub mediów społecznościowych.
W rozdziale 9 zaczniemy tworzenie najbardziej wizualnej aplikacji w tej książce, aplikacji BubbleDraw, która umożliwi użytkownikom rysowanie kolorowych bąbelków na ekranie. W rozdziale 10 dodamy animację, aby rysowane na ekranie bąbelki latały i odbijały się od siebie. Natomiast w rozdziale 11 dodamy funkcję wielodotykowości, żeby można było rysować bąbelki w kilku miejscach jednocześnie. Pod koniec rozdziału uzyskamy profesjonalnie wyglądającą aplikację, którą warto udostępnić swoim znajomym!
Na zakończenie, w dodatku, przedstawione zostaną wskazówki dotyczące debugowania i unikania typowych błędów podczas pisania programów Java w środowiskach Eclipse oraz Android Studio.
Jakie narzędzia będę potrzebne?
Omówione w tej książce narzędzia, Eclipse oraz Android Studio, stanowią jedne z najpopularniejszych w branży narzędzi programistycznych Java, dzięki czemu po ukończeniu pracy z tą książką można od razu przystąpić do programowania prawdziwych aplikacji. A co najlepsze, narzędzia te można pobierać i wykorzystywać za darmo!
Do rozpoczęcia pracy wystarczy połączenie z Internetem oraz komputer stacjonarny lub laptop z systemem Windows, macOS bądź Linux. Nie trzeba nawet posiadać telefonu ani tabletu z systemem Android, by móc budować aplikacje mobilne, ponieważ Android Studio oferuje darmowy emulator urządzeń na Androida, którego można użyć do testowania aplikacji. Oczywiście posiadacze urządzenia z system Android będą mogli uruchamiać aplikacje mobilne bezpośrednio na swoim telefonie lub tablecie.
Zasoby online
Kod źródłowy wszystkich omawianych w tej książce aplikacji można pobrać nieodpłatnie z oficjalnej strony internetowej książki o adresie: https://www.nostarch.com/learnjava/. Osoby, które wolą instruktażowe filmy krok po kroku demonstrujące proces implementacji, może zainteresować kurs online (w języku angielskim) dostępny na stronie http://www.udemy.com/java-the-easy-way/, w którym omówiony został każdy przykład oraz każda linia kodu. Kod BOOKHALFOFF pozwala uzyskać 50-procentową zniżkę na zakup kursu. Kurs online umożliwia zadawanie pytań i przesyłanie wiadomości do autora książki.
Pora zacząć!
Podejmując naukę języka Java, nie macie nic do stracenia, a jedynie wiele do zyskania. Zacznijcie już dziś. Programowanie to klucz do nowych możliwości. Nauka języka Java może być pierwszym krokiem do nowej kariery lub nowej przyszłości. Wszyscy moi studenci, niezależnie od wieku, mają jedną cechę wspólną - zrobili ten pierwszy krok, a następnie kontynuowali naukę. Wy możecie zrobić to samo.
Jak mówi chińskie przysłowie: najlepszy moment na posadzenie drzewa był 20 lat temu, drugi najlepszy moment jest teraz. Niezależnie od tego, czy jeszcze kontynuujecie edukację, czy rozważacie zmianę zawodu, najlepszy moment na naukę programowania jest teraz.
Materiały pomocnicze
Na stronie https://www.nostarch.com/learnjava/ znaleźć można materiały pomocnicze, erratę i dodatkowe informacje.