13UVQJrHshVgNMiX5MjYyQQbmUXMg4UzXE Kurs Programowania w JAVA Wydawnictwo Strefa Kursów ISBN: 978-83-61045-79-3 2 3 WSTĘP Java to popularny obiektowy język programowania. Spora część składni wywodzi się z języków C oraz C++. Główne cechy języka JAVA to:  Obiektowość – wszelkiego rodzaju dane pogrupowane są w klasy obiektów (z wyjątkiem tzw. typów prostych).  Dziedziczenie – każdy obiekt jest pochodną obiektu bazowego. Może więc z niego dziedziczyć podstawowe zachowania oraz właściwości.  Program napisany w Java wykonywany jest przez tzw. wirtualną maszynę Java, a kod źródłowy kompilowany jest do tzw. kodu pośredniego. Takie rozwiązanie pozwala uruchamiać programy napisane w tym języku na popularnych platformach wyposażonych w różne systemy operacyjne. 4 Aby rozpocząć tworzenie własnych programów będziemy potrzebowali kilku komponentów:  NetBeans – czyli zintegrowane środowisko programistyczne (IDE).  Java Development Kit (JDK) – oprogramowanie niezbędne do programowania w języku Java.  Java Runtime Environment – środowisko uruchomieniowe, które zawiera m.in. wirtualną maszynę Java. Szczegółowe instrukcje na temat instalacji oraz konfiguracji ww. komponentów można znaleźć na dołączonej płycie. 5 PIERWSZY PROGRAM Przed napisaniem pierwszego programu Java utworzymy najpierw nowy projekt w programie NetBeans:  Uruchom edytor NetBeans.  Z menu File(Plik) wybierz pozycję New Project.  Otwarte zostanie nowe okno. Z listy Categories wybierz katalog Java. Następnie z listy Projects wybierz Java Application.  Przejdź do kolejnego etapu.  W górnym polu wprowadź nazwę projektu. Wybierz także katalog, w którym zostanie on zapisany. Potwierdź, aby zakończyć tworzenie nowego projektu. 6 Po stworzeniu nowego projektu załadowany zostanie domyślny szablon. Składa się on z następujących elementów (komentarze zostały pominięte dla większej przejrzystości): package wstep; public class Wstep { public static void main(String[] args) { } } Popatrzmy teraz na poszczególne fragmenty kodu:  „package wstep” – nazwa pakietu.  „public class Wstep” – publiczna klasa Wstęp. Zwróć uwagę na to, że nazwa tej klasy jest tak sama jak nazwa dokumentu.  „public static void main(String[] args)” – metoda o nazwie main. Ta metoda przynależy do klasy Wstęp. I to właśnie w tej metodzie umieścimy za chwilę kod naszego pierwszego programu Java. Nasz program będzie bardzo prosty. Wyświetlimy na ekranie krótki ciąg znaków. Zmodyfikowany kod wygląda następująco: 7 public static void main(String[] args) { System.out.println("Kurs Java"); } Używamy polecenia System.out.println aby wyświetlić ciąg znaków umieszczony w nawiasie. Ponieważ jest to ciąg znaków (tzw. String) musimy go dodatkowo ująć w cudzysłów. Warto zauważyć, że nasze polecenie zostało zakończone średnikiem. Aby uruchomić program naciśnij klawisz F6. W dolnym oknie edytora powinien pojawić się rezultat (czyli „Kurs Java”). KOMENTARZE W kodzie naszego programu można umieszczać tzw. komentarze. Pozwolą one opisać poszczególne elementy składowe programu i na pewno znacznie ułatwią pracę szczególnie w przypadku bardziej złożonych projektów. Przykładowy komentarz może wyglądać tak: 8 public static void main(String[] args) { /* * To polecenie wyświetla ciąg znaków. */ System.out.println("Kurs Java"); } Zauważmy, że jest komentarz wielowierszowy (w tym wypadku składa się z trzech wierszy). Należy pamiętać, że komentarze pełnią rolę informacyjną i są ignorowane przez kompilator (nie wpływają na działanie samego programu). ZMIENNE Zmienna występują praktycznie w każdym popularnym języku programowania. Są po prostu fragmentem programu, który pozwala przechowywać różnego rodzaju dane (liczby, ciągi znaków itp.). Popatrzmy teraz na przykład zmiennej: PUBLIC STATIC VOID MAIN(STRING[] ARGS) { INT A = 10; } Wewnątrz metody main zdefiniowana została zmienna typu int (Integer) o nazwie a. Przypisano do niej wartość 10. 9 Zwróćmy teraz uwagę na pewne reguły dotyczące nazw zmiennych:  W języku Java zawsze musimy określić typ danych (np. Integer jak w powyższym przykładzie).  W pewnych sytuacjach przed typem danych umieszcza się różne modyfikatory (static, final itp.).  W nazwach możemy stosować liczby, ale nigdy na początku nazwy.  Nie możemy używać spacji. Jeśli nazwa naszej zmiennej zawiera kilka wyrazów to możemy je wyróżnić różnicując wielkość liter na początku każdego słowa.  Wartości przypisujemy do zmiennych stosując pojedynczy znak równości. Wartością zmiennej nie musi być liczba. Może to być np. ciąg znaków: String kurs = "Kurs Excel"; W typ wypadku mamy zmienną typu String o nazwie kurs, do której przypisano wartość „Kurs Excel”. 10 Skoro wiemy już jak zdefiniować zmienną to może spróbujmy wyświetlić wartość na ekranie: public static void main(String[] args) { int x = 5; System.out.println(x); } W powyższym przykładzie zdefiniowaliśmy zmienną x typu Integer, do której przypisana została wartość 5. Następnie za pomocą polecenia System.out.println wyświetlamy wartość tej zmiennej. Po uruchomieniu programu na ekranie powinna pojawić się wartość 5. Popatrzmy jeszcze na bardziej złożony przykład: public static void main(String[] args) { int x = 5; int y = 4; System.out.println(x+y); } W tym wypadku mamy dwie zmienne: x oraz y. Następnie wartości tych zmiennych zostały zsumowane i wypisane na ekranie. Po uruchomieniu programu powinna pojawić się wartość 9. Warto pamiętać o tym, że wartości zmiennych mogą zmieniać się wielokrotnie: 11 int x = 5; x = 6; x = 7; x = 8; System.out.println(x); Po wykonaniu programu zwrócona zostanie wartość 8, ponieważ była to ostatnia wartość przypisana do zmiennej x przed wypisaniem jej na ekran (czyli nowe wartości zastąpiły wartości poprzednie). KLASY Jednym z najważniejszych elementów programowania obiektowego są klasy. Taką klasę możemy sobie wyobrazić jako zbiór obiektów, które posiadają pewne właściwości oraz mogą wykonywać pewne działania. Spróbujmy teraz zdefiniować prostą klasę, która będzie opisywała jakiś produkt np. kursy. class Kursy { } Zauważmy, że definicję klasy rozpoczęliśmy od słowa kluczowego class. Następnie wprowadziliśmy jej nazwę czyli Kursy. Kolejny element to nawias 12 klamrowy, w którym definiujemy elementy składowe naszej klasy (pola, metody itp.). Skoro klasa będzie opisywała kursy to teraz możemy zdefiniować pola, które będą opisywały ich właściwości. Na początku możemy dodać pole, w którym będziemy przechowywali nazwę kursu: class Kursy { String nazwa; } Zauważmy że pole definiujemy jak zmienną: najpierw typ potem nazwa. W tym wypadku nie została jednak wykonana inicjalizacja, czyli do pola nie przypisano wartości początkowej (nic nie stoi jednak na przeszkodzie, aby tą wartość przypisać). Na tym etapie warto dodać kolejne pola, które będą opisywać kolejne właściwości kursu (np. jego cenę, ilość rozdziałów czy producenta). Nasza klasa wygląda teraz następująco: class Kursy { String nazwa; double cena; int rozdzialy; String kategoria; 13 } Jak widać mamy już cztery różne pola. Nasze kursy wciąż jednak nie mogą wykonać żadnych działań. Dlatego zdefiniujemy teraz metodę, która wyświetli nam nazwę kursu: void pokazNazwe(){ System.out.println(nazwa); } Zwróćmy uwagę na kilka istotnych rzeczy. Nasza metoda rozpoczyna się od słowa void. Oznacza to, że metoda nie zwraca żadnej wartości (jedynie wyświetla wartość pola nazwa). Następny element to nazwa metody czyli pokazNazwę. Zauważmy, że zgodnie z przyjętą konwencję nazewnictwa rozpoczynamy od czasownika (mała litera), po którym następuje rzeczownik (duża litera na początku). Po nazwie widoczny jest pusty nawias – oznacza to, że ta metoda nie przyjmuje żadnych parametrów. Właściwy kod metody umieszczony został w nawiasie klamrowym. W tym wypadku używamy polecenia System.out.println ,aby wyświetlić wartość pola nazwa. Nie da się ukryć, że funkcjonalność tej metody jest ograniczona, ponieważ wyświetla ona wartość 14 pojedynczego pola. Warto ją teraz rozbudować o kolejne polecenia: void pokazNazwe(){ System.out.println(nazwa); System.out.println(cena); System.out.println(rozdzialy); System.out.println(kategoria); } Teraz za pomocą tej samej metody będziemy mogli wyświetlić wartości wszystkich czterech pól naszej klasy. Może jeszcze wykonajmy inicjalizację tych pól (czyli przypiszemy do nich wartości domyślne) i ostatecznie nasza klasa będzie wyglądać następująco: class Kursy { String nazwa = "Kurs Excel"; double cena = 42; int rozdzialy = 49; String kategoria = "Biurowe"; void pokazNazwe(){ System.out.println(nazwa); System.out.println(cena); System.out.println(rozdzialy); System.out.println(kategoria); } } 15 Skoro mamy już pola oraz metodę, która wyświetli wartości tych pól to możemy stworzyć pierwszy obiekt klasy Kursy. Nasz obiekt zdefiniujemy w metodzie main, o której wspominaliśmy wcześniej. Popatrzmy teraz na kod: public static void main(String[] args) { Kursy kurs1 = new Kursy(); } Po lewej stronie widzimy zmienną typu Kursy o nazwie kurs1. Nasza zmienna wskazuje na nowy obiekt klasy Kursy. Teraz nasz obiekt może wykonać pewne działania. Możemy go wywołać z utworzoną wcześniej metodą pokazNazwę: public static void main(String[] args) { Kursy kurs1 = new Kursy(); kurs1.pokazNazwe(); } Wyraźnie widać odwołanie do obiektu kurs1. Po kropce umieszczona została nazwa metody. Czyli ostatecznie cały kod naszego programu wygląda tak: 16 package wstep; class Kursy { String nazwa = "Kurs Excel"; double cena = 42; int rozdzialy = 49; String kategoria = "Biurowe"; void pokazNazwe(){ System.out.println(nazwa); System.out.println(cena); System.out.println(rozdzialy); System.out.println(kategoria); } } public class Wstep { public static void main(String[] args) { Kursy kurs1 = new Kursy(); kurs1.pokazNazwe(); } } Teraz możemy go uruchomić. Utworzony zostanie nowy obiekt kurs1. Następnie ten obiekt wywołany zostanie z metodą pokazNazwę. Z kolei metoda wyświetli na ekranie wartości wszystkich czterech pól z klasy Kursy. Powinniśmy otrzymać taki oto rezultat: 17 run: Kurs Excel 42.0 49 Biurowe BUILD SUCCESSFUL (total time: 1 second) 18 19 20 Spis treści: WSTĘP .......................................................................................... 3 PIERWSZY PROGRAM............................................................... 5 KOMENTARZE............................................................................ 7 ZMIENNE...................................................................................... 8 KLASY ........................................................................................ 11