146 11 6MB
Polish Pages 423 Year 2015
Spis treści Wstęp .............................................................................................. 5 Rozdział 1. Podstawy ......................................................................................... 9 Instalacja JDK .................................................................................................................. 9 Instalacja w systemie Windows ................................................................................ 10 Instalacja w systemie Linux ..................................................................................... 11 Przygotowanie do pracy z JDK ................................................................................ 11 Podstawy programowania ............................................................................................... 13 Lekcja 1. Struktura programu, kompilacja i wykonanie ........................................... 13 Lekcja 2. Podstawy obiektowości i typy danych ...................................................... 16 Lekcja 3. Komentarze ............................................................................................... 19
Rozdział 2. Instrukcje języka ............................................................................ 23 Zmienne .......................................................................................................................... 23 Lekcja 4. Deklaracje i przypisania ........................................................................... 24 Lekcja 5. Wyprowadzanie danych na ekran ............................................................. 27 Lekcja 6. Operacje na zmiennych ............................................................................. 33 Instrukcje sterujące ......................................................................................................... 47 Lekcja 7. Instrukcja warunkowa if…else ................................................................. 47 Lekcja 8. Instrukcja switch i operator warunkowy ................................................... 53 Lekcja 9. Pętle .......................................................................................................... 59 Lekcja 10. Instrukcje break i continue ...................................................................... 66 Tablice ............................................................................................................................ 74 Lekcja 11. Podstawowe operacje na tablicach .......................................................... 74 Lekcja 12. Tablice wielowymiarowe ........................................................................ 79
Rozdział 3. Programowanie obiektowe. Część I ................................................. 91 Podstawy ........................................................................................................................ 91 Lekcja 13. Klasy, pola i metody ............................................................................... 91 Lekcja 14. Argumenty i przeciążanie metod .......................................................... 100 Lekcja 15. Konstruktory ......................................................................................... 110 Dziedziczenie ............................................................................................................... 121 Lekcja 16. Klasy potomne ...................................................................................... 122 Lekcja 17. Specyfikatory dostępu i pakiety ............................................................ 129 Lekcja 18. Przesłanianie metod i składowe statyczne ............................................ 144 Lekcja 19. Klasy i składowe finalne ....................................................................... 156
4
Java. Praktyczny kurs
Rozdział 4. Wyjątki .......................................................................................... 165 Lekcja 20. Blok try…catch ..................................................................................... 165 Lekcja 21. Wyjątki to obiekty ................................................................................ 173 Lekcja 22. Własne wyjątki ..................................................................................... 182
Rozdział 5. Programowanie obiektowe. Część II .............................................. 195 Polimorfizm .................................................................................................................. 195 Lekcja 23. Konwersje typów i rzutowanie obiektów .............................................. 195 Lekcja 24. Późne wiązanie i wywoływanie metod klas pochodnych ..................... 204 Lekcja 25. Konstruktory oraz klasy abstrakcyjne ................................................... 212 Interfejsy ....................................................................................................................... 222 Lekcja 26. Tworzenie interfejsów .......................................................................... 222 Lekcja 27. Wiele interfejsów .................................................................................. 230 Klasy wewnętrzne ........................................................................................................ 238 Lekcja 28. Klasa w klasie ....................................................................................... 238 Lekcja 29. Rodzaje klas wewnętrznych i dziedziczenie ......................................... 246 Lekcja 30. Klasy anonimowe i zagnieżdżone ......................................................... 254
Rozdział 6. System wejścia-wyjścia ................................................................ 269 Lekcja 31. Standardowe wejście ............................................................................ 269 Lekcja 32. Standardowe wejście i wyjście ............................................................. 279 Lekcja 33. System plików ...................................................................................... 295 Lekcja 34. Operacje na plikach .............................................................................. 306
Rozdział 7. Kontenery i typy uogólnione .......................................................... 323 Lekcja 35. Kontenery ............................................................................................. 323 Lekcja 36. Typy uogólnione ................................................................................... 336
Rozdział 8. Aplikacje i aplety ......................................................................... 351 Aplety ........................................................................................................................... 351 Lekcja 37. Podstawy apletów ................................................................................. 351 Lekcja 38. Kroje pisma (fonty) i kolory ................................................................. 358 Lekcja 39. Grafika .................................................................................................. 366 Lekcja 40. Dźwięki i obsługa myszy ...................................................................... 376 Aplikacje ...................................................................................................................... 386 Lekcja 41. Tworzenie aplikacji .............................................................................. 386 Lekcja 42. Komponenty ......................................................................................... 402
Skorowidz .................................................................................... 417
Wstęp Krótka historia Javy Trudno znaleźć osobę interesującą się zagadnieniami informatycznymi, która nie słyszałaby o Javie. Java jest językiem, który w bardzo krótkim czasie zdobył popularność i uznanie programistów na całym świecie. Dawniej kojarzono go głównie z internetem i siecią WWW, a także z telefonami komórkowymi, choć tak naprawdę zawsze był to doskonały obiektowy (zorientowany obiektowo) język programowania, nadający się do różnorodnych zastosowań: od krótkich apletów do bardzo poważnych i rozbudowanych aplikacji. Jego początki były jednak dużo skromniejsze. Zapewne wielu Czytelnikom trudno będzie w to uwierzyć, ale Java była pierwotnie znana jako Oak (Dąb) i miała być językiem programowania służącym do sterowania urządzeniami elektronicznymi powszechnego użytku, czyli pralkami, lodówkami czy kuchenkami mikrofalowymi, a więc praktycznie każdym urządzeniem, które zawiera mikroprocesor. Stąd właśnie wywodzi się jedna z największych zalet Javy, czyli przenośność — ten sam program, przynajmniej teoretycznie, będzie bowiem działał na różnych urządzeniach i platformach sprzętowo-systemowych. Będzie go więc można uruchomić i na komputerze PC, i na Macintoshu, i w systemie Windows, i w Uniksie. Takie były właśnie początki Javy w roku 1990, czyli dwadzieścia kilka lat temu. Język został opracowany przez zespół kierowany przez Jamesa Goslinga w firmie Sun Microsystems, choć w rzeczywistości prace były prowadzone na Uniwersytecie Stanford. Projekt ten był gotowy bardzo szybko, już w roku 1991, jednak tak naprawdę aż do roku 1994 nie udało się go spopularyzować. Z tego też powodu prace zostały zawieszone. Historia informatyki pełna jest jednak przypadków. Były to lata ogromnej ekspansji i wręcz eksplozji internetu. Nagle okazało się, że Oak przecież doskonale sprawdzałby się w tak różnorodnym środowisku, jakim jest globalna sieć. W ten oto sposób w roku 1995 ujrzała światło dzienne Java, a to, co nastąpiło później, zaskoczyło chyba wszystkich, łącznie z twórcami tego języka. Java niezwykle szybko, nawet jak na technologię informatyczną, została zaakceptowana przez społeczność internautów i programistów na całym świecie. Z pewnością nie można tu pominąć wpływu kampanii marketingowej producenta, nie osiągnęłaby ona jednak sukcesu, gdyby nie niewątpliwe zalety tego języka. Java
6
Java. Praktyczny kurs
to doskonale skonstruowany język programowania, który programistom przypada do gustu zwykle już przy pierwszym kontakcie. Od Javy po prostu nie ma już odwrotu. Obecnie to dojrzała, choć wciąż rozwijana technologia, z której korzystają rzesze programistów na całym świecie.
Narzędzia Do programowania w Javie będzie potrzebne odpowiednie środowisko programistyczne zawierające niezbędne narzędzia: minimum to kompilator oraz tzw. maszyna wirtualna. Wszystkie przykłady prezentowane w tej książce są oparte na pakiecie JDK (Java Development Kit). Można skorzystać z wersji sygnowanej przez oficjalnego producenta Javy — firmę Oracle1 — lub rozwijanej na zasadach wolnego oprogramowania wersji OpenJDK. Wersja oficjalna dostępna jest pod adresami http://java.sun.com (po wpisaniu tego adresu nastąpi przekierowanie do domeny oracle.com) i http://www.java.com, a OpenJDK pod adresem http://openjdk.java.net/. Najlepiej korzystać z jak najnowszej wersji JDK, tzn. 6 (1.6), 7 (1.7), 8 (1.8) lub wyższej (o ile taka będzie dostępna2), choć podstawowe przykłady będą działać nawet na wiekowej już wersji 1.1. Jeśli będą stosowane funkcje dostępne jedynie w konkretnej wersji środowiska, będzie to zaznaczane w tekście. Do testowania apletów przedstawionych w rozdziale 8. można użyć dowolnej przeglądarki internetowej obsługującej język Java lub zawartej w JDK aplikacji appletviewer. Większość obecnie dostępnych na rynku przeglądarek udostępnia Javę poprzez mechanizm wtyczek, umożliwiając zastosowanie najnowszych wersji JRE (Java Runtime Environment), czyli środowiska uruchomieniowego. Oprócz JDK będzie potrzebny jedynie dowolny edytor tekstowy umożliwiający wpisywanie tekstu programów. Może to być nawet tak prosty produkt jak np. Notatnik z Windowsa. Lepszym rozwiązaniem byłby jednak bardziej rozbudowany produkt oferujący takie udogodnienia jak kolorowanie składni i numerowanie wierszy kodu. Dla środowiska Windows można polecić np. doskonały i darmowy Notepad++ (http://notepad-plus-plus.org/). Dobrym rozwiązaniem będzie też wieloplatformowy jEdit (http://www. jedit.org/), który został napisany w… Javie. Istnieje również możliwość zastosowania zintegrowanych graficznych środowisk programistycznych, takich jak Eclipse (http://www.eclipse.org/) czy NetBeans (http://netbeans. org/), które ułatwiają projektowanie aplikacji (oba zostały napisane w Javie). Dla osób początkujących lepszy byłby jednak najprostszy edytor tekstowy — takie rozwiązanie pozwoli najpierw poznać dobrze sam język, a dopiero potem bardziej zaawansowane środowiska programistyczne.
1
Pierwotny producent — Sun Microsystems — został zakupiony przez Oracle w 2009 roku. Tym samym obecnie to Oracle oficjalnie odpowiada za rozwój Javy.
2
W trakcie powstawania tej książki kolejna wersja Javy była zapowiadana na rok 2016, biorąc jednak pod uwagę wcześniejszą historię języka, jest mało prawdopodobne, aby taki termin został dotrzymany.
Wstęp
7
Wersje Javy Pierwsza wersja Javy pojawiła się w roku 1995 i nosiła numer 1.0, większą popularność zdobyła jednak dopiero usprawniona wersja 1.1 z roku 1997. Po kolejnych dwóch latach (rok 1999) światło dzienne ujrzała Java 1.2, która ze względu na znaczne usprawnienia (zawierała już wtedy ok. 60 pakietów i ponad 1500 klas) została nazwana Platformą Java 2 (ang. Java 2 Platform). W ramach projektu Java 2 powstały trzy wersje narzędzi JDK i JRE3: 1.2 (1999), 1.3 (2000) i 1.4 (2002), a każda z nich miała od kilku do kilkunastu podwersji. Kolejnym krokiem w rozwoju projektu była wersja 1.5 (rok 2004), która, jak się wydaje, ze względów czysto marketingowych została przemianowana na 5.0; określa się ją również mianem Java 5. W 2006 roku pojawiła się Java 6 (1.6) zawierająca nowe rozwiązania, takie jak obsługa typów uogólnionych (ang. generics). Zrezygnowano też wtedy z używania określenia Java 2 Platform. W roku 2010 pojawiła się kolejna wersja — 7 (1.7). Najnowsza w chwili opracowywania materiałów do tej książki była wersja 8 (czyli inaczej 1.8) z roku 2014. Dodatkowo JDK występuje w trzech osobnych edycjach: standardowej (ang. Standard Edition), dla dużych organizacji (ang. Enterprise Edition) i dla urządzeń mobilnych (ang. Mobile Edition); są one oznaczane skrótami SE, EE i ME. Określenie Java SE 8 oznacza w związku z tym platformę Java Standard Edition w wersji 8. Warto też zauważyć, że wewnętrzna numeracja narzędzi (widoczna np. w niektórych opcjach kompilatora javac) wciąż bazuje na „starej”, logicznej numeracji (Java 2 5.0 oznacza to samo co Java 1.5, Java 6 — to samo co Java 1.6, Java 7 — to samo co Java 1.7, a Java 8 — to samo co Java 1.8).
3
Java Runtime Environment — środowisko uruchomieniowe potrzebne do uruchamiania programów w Javie.
Java. Praktyczny kurs
w
w
w
.e
bo o
k4
al
l.p
l
8
Rozdział 1.
Podstawy
�
Przed wypłynięciem na szerokie wody programowania w Javie�eba zapoznać się z pod stawami. W tym rozdziale zostanie pokazane, jak wygląda �'b,.ra programu w Javie, czym jest i jak przeb�ega ko�p lacja ?ra� jak t pro�am . c?omić.. Prz�dstawione zostaną podstawy ob1ektowosc1, czyh naJważmeJS � d!u ma z dz1edzmy progra mowania obiektowego, oraz pojęcie typu danych. Z · · się tu także krótkie omówie eścić w progra ni� typów danych występujących w Javie. Okaż�i , jak sposób _ '-.w rme komentarz, co, wbrew pozorom, Jes zynnoscią, pomeważ pozwala na t dokumentowanie kodu, poprawia jego czy i ułatwia analizę.
�
��
��
� � ��
�
�
Czytelnicy, którzy znają podstawy p wania, mogą spokojnie pominąć ten roz dział i przejść do drugiego, aby��' jak w Javie wyglądają typowe konstrukcje programistyczne, takie jak pęt��trukcje warunkowe, deklaracje zmiennych oraz tablice. Natomiast osoby, które\c:W#ero zaczynają swoją przygodę z programowaniem, powinny przeczytać ten r ziAł dokładnie- nie jest on długi i stanowi wprowadzeię przejmować, jeśli nie wszystko od razu będzie całkiem nie w świat Javy. Nie jasne. Z wieloma P. ·ami i konstrukcjami programistycznymi trzeba się po prostu oswoić, wyko tyczne przykłady. Temu przecież służy ta książka.
�
�p
Instalacja JDK Aby móc wykonywać prezentowane w książce przykłady, trzeba najpierw zainstalo wać w systemie pakiet programistyczny nazywany JDK, czyli Java Development Kit. Instalacja przebiega typowo, tak jak w przypadku dowolnej innej aplikacji dla danego systemu operacyjnego, więc nikomu z pewnością nie przysporzy problemów. Poniżej znajdują się krótkie opisy tego procesu dla JDK 8 i systemów Windows oraz Linux.
10
Java. Praktyczny kurs
Instalacja w systemie Windows W chwilę po uruchomieniu pliku instalacyjnego (np. jdk-8-windows-i586.exe dla JDK 81 lub jdk-1. 7.0.windows-i586.exe dla JDK 7; są dostępne pod adresami podanymi we wstę pie) na ekranie ukaże się okno startowe instalatora, w któ-rym należy kliknąć przycisk Next. Kolejne okno, widoczne na rysunku 1.1, pozwala na wybranie składników in stalacji oraz katalogu docelowego (standardowo C: \Program FilesVava!Jdkl.8.0). Po kliknięciu Next rozpocznie się właściwy proces instalacji. Rysunek 1.1.
Java SE Development Kit 8 - Custom Setup
Okno wyboru składnikó w JDK
�)ja a··
-.::::
ORACLE"
V
-
---
-
------
Select optional feab.Jres to install from the list below, You can change your choice of feab.Jres after installation by using the Add/Remove Programs ulility in the eontroi Panel
�
Fe
e Descriplion
velopment Kit 8, g e JavaFX SDK" a JRE, and the Java eontroi mols suite, lhis l ill require 180MB on your hard drive. J
Source eode Public: JRE
S
lnstall to: c,�mg