java_podstawy 182 Kb May 31 2008 05:31:47 PM
Transkrypt
java_podstawy 182 Kb May 31 2008 05:31:47 PM
Komentarze W Javie istnieją dwa rodzaje komentarze: Komentarz wierszowy: // to jest komentarz wierszowy Komentarz blokowy: /* To jest komentarz blokowy Może zawierać wiele linii tekstu Komentarze blokowe nie mogą być zagnieżdżone */ Typy danych – typy całkowite Java jako język opisowy musi mieć zadeklarowane typy danych – istnieje osiem tzw. prymitywnych typów danych. Typy całkowite: int short long byte 4 bajty 2 bajty 8 bajtów 1 bajt od -2147483648 do 2143483647 od -32768 do 32767 obejmuje zakres 2 do potęgi 64 od -128 do 127 W jeżyku Java brak jest typów UNSIGNED (bez znaku) Typy danych – typy zmiennoprzecinkowe Istnieją dwa typy zmienno przecinkowe: float 4 bajty double 8 bajtów (7 cyfr dziesiętnych) (15 cyfr dziesiętnych) Istnieją dodatkowo trzy specjalne wartości zmiennoprecinkowe: Dodatnia nieskończoność ● Ujemna nieskończoność ● NaN (wartość nie liczbowa – not a number) ● Typy danych – typ znakowy Typ ten określa pojedynczy znak – w języku Java jest do tego standard Unicode. Do określenia tego typu używamy słowa kluczowego char. Aby określić stałą znakową używamy apostrofów – cudzysłów określa łańcuch znakowy. Typy danych - typ boolean Typ ten zwany również typem logicznym przyjmuje dwie wartości prawdę (true) lub fałsz (false). Zmienne tego typu definiujemy za pomocą słowa kluczowego boolean. Deklaracja zmiennych W jeżyku Java każda zmienna ma swój typ. Typ zmiennej określamy przez podanie nazwy typu przed nazwą zmiennej: int liczba; double podatek; long zarnaPiasku; char znak; boolean zalogowany; Inicjalizacja Inicjalizacja – czyli przypisanie wartości do zmiennej. int wiek; //deklaracja zmiennej wiek = 25; //inicjalizacja zmiennej można wykonać to razem: int wiek = 25; //deklaracja + przypisanie Stałe Do oznaczania wyrażeń stałych używamy słowa final. Słowo to oznacza, że raz przypisanej wartości nie można już nigdy zmieniać. Przyjęto konwencję, że stałe piszemy wielkimi literami. public class Stale { public static void main(String[] args) { final double PI = 3.14; double promien = 2.0; System.out.println(”Obwód koła o promieniu 2 wynosi : ” + 2 * promien*PI); } } Operator + służy w przykładzie do dodawania łańcuchów znakowych. Funkcje i stałemklasy Math Język Java dostarcza nam za pośrednictwem klasy Math całym asortyment funkcji matematycznych. Podstawowe to: ● ● ● ● ● ● ● ● Math.sqrt(x) Math.pow(x, a) Math.sin(x) Math.cos(x) Math.tan(x) Math.atan(x) Math.exp(x) Math.log(x) oraz stałe: - pierwiastek kwadratowy z x - x do potęgi a - sinus - cosinus - tangens - arkustangens - funkcja ekspotencjalna - logarytm naturalny Math.PI ● Math.E a także funkcję generującą liczby pseudolosowe: ● Math.random() - z zakresu [0 - 1) ● Łańcuchy Java nie posiada typu łańcuchowego, posiada za to predefiniowaną klasę String. Każdy opatrzony cudzysłowami łańcuch jest instancją klasy String. String lancuch = ””; //łańcuch pusty String imie = ”Ala”; UWAGA: 'a' – to nie łańcuch – to char (znak) Konkatencja łańcuchów String lancuch1 = ”Ala”; String lancuch2 = ”Ma kota”; String zdanie = lancuch1 + lancuch2; Użycie powyższego: System.out.println(”Znane wszystkim zdanie to : ” +lancuch1 +lancuch2); Wybrane metody klasy String char charAt(int index) – zwraca znak na pozycji index boolean endsWith(String sufix) – zwraca true jeżeli dany łańcuch kończy się łańcuchem sufiks boolean equals(String inny) – zwraca true jeżeli dany łańcuch jest równy łańcuchowi inny boolean equalsIgnoreCase(String inny) – j.w int length() - zwraca długość łańcucha String repalce(char startZnak, char nowyZnak) – zwraca łańcuch powstały w wyniku zamiany w danym łańcuchów wszystkich wystąpień „starZnak” na „nowyZnaki”. Wybrane metody klasy String cd. Boolean startsWith(String prefix) – zwraca true jeżeli łańcuch zachyna się od ciągu prefix String substring(int poczatek, int koniec) – zwraca nowy łańcuch będący wycinkiem danego łańcucha od indeksu początek do indeksu koniec lub do końca danego łańcucha jeżeli nie podano końca String toLowerCase(), String toUpperCase – zamieniają wszystkie znaki łańcucha na odpowiednio małe lub duże litery String trim() - obcina tzw. „białe” znaki występujące na początku lub końcu łańcucha. Tablice w języku Java Aby utworzyć tablicę używamy operatora new: int[] tablica = new int[10]; Wypełniamy taką tablicę w np. W pętli: for (int i=0; i<10;i++) tablica[i]=i; Aby wyświetlić taką tablicę: for (int j=0; j<tablica.length);j++) System.out.println(tablica[j]); Tablice – inny sposób inicjalizacji W jeżyku Java możemy również inicjalizować tablice w następujący sposób: int[] tablica = {1,2,3,4,5,6,7,8,9}; inicjalizując w ten sposób nie używamy słowa new Tablice wielowymiarowe int[][] tablica2D = new int[wymiar][wymiar]; lub jeżeli nie chcemy aby była to tablica równej długości to możemy: int[][] tablica2D = new int[wymiar][]; for (int i=0;i<wymiar;i++) tablica2D[i] = new int[inny_wymiar]; Kopiowanie tablic int tablica1 = {1, 2, 3, 4, 5 }; int tablica2 = {6,7,8}; Kopiowanie tablic odbywa się z użyciem metody arraycopy klasy System Składnia wywołania wygląda w następujący sposób: System.arraycopy( źródło, indeksŹródła, cel, indeksCelu, ilość); Przykład na naszych tablicach: System.arraycopy(tablica2, 0, tablica1, 5, tablica2.length); Kopiowanie tablic - przykład public class Main { public static void main(String[] args) { int[] tablica1 = {1,2,3,4,5}; int[] tablica2 = {6,7,8,9}; for(int i=0; i<tablica1.length;i++) System.out.println(tablica1[i]); System.out.println("------------"); System.arraycopy(tablica2,0,tablica1,0,tablica2.length); for(int i=0; i<tablica1.length;i++) System.out.println(tablica1[i]); } } Blok instrukcji Ciąg poleceń otoczonych parą nawiasów klamrowych nazywamy blokiem instrukcji. Bloki instrukcji mogą być zagnieżdżone w innych blokach. { int a = 10; { String tekst = ”Ala ma kota”; } //definicja zmiennej tekst obowiązuje tylko dotąd ! } //koniec bloku zewnętrznego zmienna a nie istnieje poza tym blokiem Blok instrukcji - uwaga W języku JAVA nie ma możliwości przekrywania zmiennych, zmienne wewnątrz bloków nie mogą mieć identycznych nazw jak zmienne w blokach otaczających. { } int b = 10; { int b = 15; } powyższy kod wygeneruje błąd podczas kompilacji ! Instrukcje warunkowe Ogólna postać instrukcji warunkowej wygląda następująco: if (warunek logiczny) polecenie; lub if (warunek logiczny) { blok instrukcji; } if (warunek logiczny) { blok instrukcji; }else { blok instrukcji; } lub Instrukcje warunkowe - przykład im p o r t ja v a x .s w in g .*; p u b lic c la s s W ie k { p u b lic s ta tic v o id m a in (S tr in g [] a r g s ) { fin a l in t d o r o s ly = 1 8 ; S tr in g tm p = J O p tio n P a n e .s h o w In p u tD ia lo g ("ile m a s z la t?"); in t w ie k = In te g e r .p a r s e In t(tm p ); if (w ie k < d o r o s ly ) S y s te m .o u t.p r in tln ("to n ie je s t d la d z ie c i !"); els e S y s te m .o u t.p r in tln ("D la d o r o s ły c h te ż to n ie je s t "); } } Pętla while oraz do while Ogólna postać pętli while: while (warunek logiczny) { blok instrukcji; } do { blok instrukcji; }while (warunek logiczny) Pętla while - przykład im p o r t ja v a x .s w in g .*; p u b lic c la s s E m e r y tu r a { p u b lic s ta tic v o id m a in (S tr in g [] a r g s ) { S tr in g tm p = J O p tio n P a n e .s h o w In p u tD ia lo g ("Ile p o tr z e b u je s z n a e m e r y tu r ę ?"); in t k a p ita l = In t e g e r .p a r s e In t (tm p ); tm p = J O p tio n P a n e .s h o w In p u t D ia lo g ("J a k ą k w o t ę b ęd z ie s z o d k ła d a ł c o r o k ?"); in t k w o ta W p la ty = I n te g e r .p a r s e In t(tm p ); in t s ta n K o n t a = 0 ; in t la ta = 0 ; while (s ta n K o n ta < k a p ita l) { s ta n K o n ta + = k w o ta W p la ty ; la ta + + ; } S y s te m .o u t .p r in tln ("N a e m e r y t u r e p r z e jd z ie s z z a : "+ la t a + " la t"); } Pętla do while - przykład im p o r t ja v a x .s w in g .*; p u b lic c la s s G r a { p u b lic s ta tic v o id m a in ( S tr in g [] a r g s ){ in t z a k r e s = 1 0 ; in t w y lo s o w a n a = (in t)(M a th .r a n d o m () * z a k r e s ); in t lic z b a = 0 ; S tr in g tm p ; do { tm p = J O p tio n P a n e .s h o w In p u tD ia lo g ("P o d a j lic z b ę "); if (tm p .e q u a ls ("K ")) b r e a k ; lic z b a = In te g e r .p a r s e In t(tm p ); if (lic z b a > w y lo s o w a n a ) S y s te m .o u t.p r in tln ("Z a d u ż a !"); e ls e if (lic z b a < w y lo s o w a n a ) S y s te m .o u t.p r in tln ("Z a m a ła ! "); } while (lic z b a != w y lo s o w a n a ); } } Pętla for for (int i=0; i<10;i++) { System.out.println(i); }