Typy
Java jest językiem statycznie typowanym, tzn., że każda
zmienna / każdy obiekt musi mied ściśle określony typ i typ
ten nie może ulec zmianie.
Przed użyciem każda zmienna musi mied określoną nazwę i
typ.
Np.
int x;
String imie;
Osoba pracownik;
Typy
Typy
• Wbudowane
– int
– double
– String
– itd.
• Zdefiniowane przez programistę za pomocą:
– class
– interface
Typy podstawowe
(ang. primitive)
• byte
• short
• int
• long
• float
• double
• boolean
• char
• String
Typy podstawowe
(ang. primitive)
Typy całkowite
• byte
– 8-bitowy
– [-128, 127]
• short
– 16-bitowy
– [-32 768 , 32 767]
• int
– 32-bitowy
– [-2,147,483,648 ; 2,147,483,647 ]
• long
– 64-bitowy
– [-9,223,372,036,854,775,808 ; 9,223,372,036,854,775,807]
Typy podstawowe
(ang. primitive)
• float
– 32-bitowe liczby zmiennoprzecinkowe
• double
– 64-bitowe liczby zmiennoprzecinkowe
Jeśli wymagana jest określona dokładnośd (np. operacje
finansowe na walutach) lepiej użyd typu
zdefiniowanego przez klasę:
java.math.BigDecimal
Typy podstawowe
(ang. primitive)
• boolean
– Tylko dwie możliwe wartości: { true, false}
– Reprezentuje 1 bit informacji, lecz rozmiar nie jest
zdefiniowany
• char
– 16-bitowy typ znakowy Unicode
– * ‘\u0000’ ; ‘\uffff’ +
• String
– java.lang.String
Typy
Wartości domyślne
(dla zmiennych składowych klasy)
Typy
Uwaga! Zmienne lokalne (w funkcji) nie mają
przypisywanych wartości domyślnych!
Należy to zrobid własnoręcznie przed
pierwszym użyciem.
Zmienna będąca
częścią klasy ma
przypisywaną
wartośd domyślną
właściwą dla jej
typu.
Typy
Ok!
Typy
Również ok!
Domyślna wartośd dla int
Typy
Literały - stałe reprezentacje wartości
np. true, false, 1000, 14.4, “dom”, ‘F’
Typy
• Literały liczb całkowitych określają typ int, np.
– 21 jest traktowane jako int
• Jeśli na koocu stoi litera ‘L’ lub ‘l’ (małe L, nie
mylid z 1 – jedynką), to typem jest long
– np. 21L jest tratowany jak typ long
Typy
• Literały całkowite mogą byd reprezentowane
w systemach o różnej podstawie
Ta sama wartośd 26
Typy
• Literały wartości
zmiennoprzecinkowych
– Kooczą się na ‘F’ lub ‘f’ dla
typu float
– Domyślnie jest typ double
(opcjonalnie ‘D’ lub ‘d’)
– Notacja naukowa:
• Np. 12.3e2 = 12.3 * 10
2
• Np. 12.3e-2 = 12.3 * 10
-2
Typy
Typ znakowy char
\b (backspace)
\t (tab)
\n (line feed)
\f (form feed)
\r (carriage return)
\" (double quote)
\' (single quote)
\\ (backslash)
Typy
• Literał null
• Może byd użyty do typów “referencyjnych
• Oznacza, że referencja nie wskazuje na żaden obiekt
Np.
String znaki = null;
ale
int x = null; // BŁĄD !
Uwaga!
null nie oznacza łaocucha pustego ""
Typy
• Od wersji 7, w literałach liczbowych można
umieszczad pomiędzy cyframi dowolną liczbę
znaków podkreślenie (w celu bardziej
czytelnego zapisu)
Typy
Poprawnie
Typy
Niepoprawnie
Tablice
• Tablica jest kontenerem przechowującym
wartości / obiekty tego samego typu.
• Długośd tablicy jest określona i ustalona
podczas jej tworzenia.
• Długośd nie może ulec zmianie
• Wartośd każdy elementu można pobrad znając
jego indeks
• Indeksowanie zaczyna się od zera
Tablice
Tablice
Tablice
nazwa typu
oznaczenie tablicy
nazwa zmiennej
Tablice
• Tworzenie na podstawie listy elementów
Tablice
• W javie można tworzyd tablice wielowymiarowe
– Elementem tablicy w danym wymiarze jest tablica np.
– Tablice będące elementami tablicy wielowymiarowej
mogą byd różnej długości
Tablice
• Tablice wielowymiarowe
Tablice
• Kopiowanie
skąd
odkąd
dokąd
ile
dokąd (pozycja startowa)
Tablice
Intermezzo
Liczby losowe
Zadanie
Totolotek 1
Wygeneruj i wypisz 6 losowych liczb z
przedziału *1, 49+.
Totolotek 2
Wygeneruj i zapisz do tablicy 6 losowych liczb z
przedziału *1, 49+. Wypisz wartości z tablicy.
Operatory
Najwyższy
priorytet
(oznacza
pierwszeostwo
wykonania)
Operatory
Operatory
Operator ‘+’ łączy obiekty typu String
Operatory
Operatory
Operatory
• Sprawdzanie relacji między wartościami
Operatory
• Operatory logiczne
AND
OR
Operatory
• Operator ? :
Operatory
Operacje przeprowadzane na każdej parze bitów
oddzielnie
• & - operator bitowego AND
• | operator bitowego OR
• ^ operator bitowego XOR