Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 1 / 13
Wprowadzenie Język Java Platforma Java Java Virtual Machine Java Application Programming Interface (API) Główne zalety Simple Architecture neutral Object oriented Portable Distributed High performance Multithreaded Robust Dynamic Secure Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 2 / 13
Kompilowanie i uruchamianie aplikacji Program źródłowy - *.java Kod pośredni (bytecod) - *.class Maszyna wirtualna - Java Virtual Machine, JVM Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 3 / 13
Jak zaczać? Java SE http://java.sun.com/javase/downloads/index.jsp Java Development Kit (JDK) Java Runtime Environment (JRE) Środowisko programistyczne (IDE) Eclipse, http://www.eclipse.org Netbeans, http://www.netbeans.org Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 4 / 13
Literatura The Java Tutorial, http://java.sun.com/docs/books/tutorial/ B. Eckel, Thinking in Java. Edycja polska, Helion 2006, http://www.mindview.net/books/tij/ K. Sierra, B. Bates, Head First Java. Edycja polska, Helion 2004 C. Horstmann, G. Cornell, Java 2. Podstawy, Helion 2003 H. Schildt, Java. Kompendium programisty, Helion 2005 Uwaga na ksiażki dotyczace starych wersji Javy! Kolejne wersje: 1.3, 1.4 (Java 2), 1.5, 6 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 5 / 13
Nasz pierwszy program Hello world package h e l l o w o r l d ; / Przykład p r o s t e j a p l i k a c j i w języku Java / public class Main { } public s t a t i c void main ( S t r i n g [ ] args ) { / / Wypiszmy komunikat na ekranie System. out. p r i n t l n ( " Hello world " ) ; } Wielkość znaków ma znaczenie Stosowanie się do konwencji poprawia przejrzystość kodu Ctrl+spacja twoim przyjacielem! Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 6 / 13
Typy danych i zmienne Typowanie statyczne Zmienna należy zadeklarować przed użyciem Typy proste (primitives) int, long, double, boolean byte, short, float, char Typy obiektowe klasy String Object, Integer, Double, Array, List,... Wartość domyślna Dla pól: zero lub null Dla zmiennych lokalnych: brak Przykłady zmiennych i n t n = 2, m = 7; i n t k ; k = m + n ; long l = 73165498798756465L ; double x = 7.3, y = 1 3. 4 ; double z = x y ; boolean warunek = y > x ; Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 7 / 13
Typy danych i zmienne Typowanie statyczne Zmienna należy zadeklarować przed użyciem Typy proste (primitives) int, long, double, boolean byte, short, float, char Typy obiektowe klasy String Object, Integer, Double, Array, List,... Wartość domyślna Dla pól: zero lub null Dla zmiennych lokalnych: brak Przykłady zmiennych i n t n = 2, m = 7; i n t k ; k = m + n ; long l = 73165498798756465L ; double x = 7.3, y = 1 3. 4 ; double z = x y ; boolean warunek = y > x ; Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 7 / 13
Typy danych i zmienne Typowanie statyczne Zmienna należy zadeklarować przed użyciem Typy proste (primitives) int, long, double, boolean byte, short, float, char Typy obiektowe klasy String Object, Integer, Double, Array, List,... Wartość domyślna Dla pól: zero lub null Dla zmiennych lokalnych: brak Przykłady zmiennych i n t n = 2, m = 7; i n t k ; k = m + n ; long l = 73165498798756465L ; double x = 7.3, y = 1 3. 4 ; double z = x y ; boolean warunek = y > x ; Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 7 / 13
Typy danych i zmienne Typowanie statyczne Zmienna należy zadeklarować przed użyciem Typy proste (primitives) int, long, double, boolean byte, short, float, char Typy obiektowe klasy String Object, Integer, Double, Array, List,... Wartość domyślna Dla pól: zero lub null Dla zmiennych lokalnych: brak Przykłady zmiennych i n t n = 2, m = 7; i n t k ; k = m + n ; long l = 73165498798756465L ; double x = 7.3, y = 1 3. 4 ; double z = x y ; boolean warunek = y > x ; Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 7 / 13
Typy danych i zmienne Nazwy zmiennych Dowolna długość, wielkość znaków istotna Specyfikacja języka pozwala zaczać od litery, podkreślenia lub $ Konwencja camel-case dluganazwazmiennej, krotkanazwa Nazwa_dozwolona_lecz_nie_zalecana TaZmiennaWyglądaJakKlasa, TaTeż Nie oszczędzaj na długości nazw zmiennych Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 8 / 13
Tablice Tablica przechowuje wartości określonego typu Stała liczba elementów Elementy indeksowane od 0 Przykłady tablic int tablica[] = new int[7]; tablica[0] = 1; tablica[1] = 17; tablica[7] = 3; // błąd!!! tablica[3] = 12.3; // błąd!!! double liczby[] = { 1.2, 2.1, 3.7, -0.5 }; double t1[] = new double[10]; double[] t2 = new double[10]; Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 9 / 13
Tablice wielowymiarowe Tablica wielowymiarowa to tablica, której elementami sa tablice double oceny [ ] [ ] = { { 2, 3 }, { 2, 2 }, { 4. 0, 4. 5 } } ; System. out. p r i n t l n ( oceny [ 0 ] [ 1 ] ) ; Poszczególne wiersze moga mieć różna długośc double oceny [ ] [ ] = { { 2, 3, 3. 5 }, { 2, 2 }, { 3 }, { 4. 0, 4.5, 3.0, 5. 0 } } ; Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 10 / 13
Instrukcje sterujace Przykład 1 double liczby[] = new double[10]; int ilezer = 0, ilejedynek = 0; if-then-else for switch while, do-while break, continue for(int i=0; i<10; i++) liczby[i] = Math.random(); for(int i=0; i<liczby.length; i++) { if(liczby[i] > 0.5) { liczby[i] = 1.0; ilejedynek++; } else { liczby[i] = 0; ilezer++; } } if(ilejedynek > ilezer) System.out.println("Jedynek więcej niż zer"); else if(ilejedynek < ilezer) System.out.println("Zer więcej niż jedynek"); else System.out.println("Tyle samo zer i jedynek"); Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 11 / 13
Instrukcje sterujace if-then-else for switch while, do-while break, continue Przykład 2 int i = 0; double x = 0; do { x = Math.random(); i++; } while(x < 0.5); System.out.println("Wylosowałem za " + i + " razem"); Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 12 / 13
Instrukcje sterujace if-then-else for switch while, do-while break, continue Przykład 3 int dzientygodnia = 3; switch(dzientygodnia) { case 1: // Poniedziałek System.out.println("Niestety trzeba iść do pracy..."); break; case 2: // Wtorek case 4: // Czwartek case 6: // Sobota System.out.println("Pamiętaj o totolotku!"); break; default: System.out.println("Dzień jak co dzień"); } Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009 13 / 13