You are on page 1of 7

SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@

BUDOWA APLIKACJI ^


WRMHVWNRPHQWDU]ZLHUV]RZ\
Program w Javie skada si ze zbioru klas. Kada klasa publiczna musi by zapisana w oddzielnym pliku o takiej samej nazwie, 6\VWHPRXWSULQWOQ 7RMHVWQDSLV 
jak nazwa tej klasy (zasada ta nie dotyczy klas wewntrznych i pakietowych), oraz rozszerzeniu java. Wykonywanie programu `
rozpoczyna si od metody o nazwie PDLQ, ktra musi by zadeklarowana jako publiczna i statyczna. Jeeli program skada si `
z wielu klas publicznych i wicej ni jedna z nich zawiera tak metod PDLQ, to aplikacja ma wiele punktw wejcia (startowych), Komentarz wierszowy moe znale si w rodku komentarza blokowego:
moe by wic uruchamiana na kilka sposobw. Schematyczna konstrukcja programu: 
SXEOLFFODVV0DLQ WDNRQVWUXNFMDMHVWSRSUDZQD
^ 
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@
^
NRGPHWRG\PDLQ
` ZMIENNE
`
Deklaracja pojedynczej zmiennej
Deklaracja zmiennej polega na podaniu jej typu oraz nazwy i koczy si znakiem rednika; schematycznie:
KOMPILACJA KODU QD]ZDB]PLHQQHMW\SB]PLHQQHM
Przykadowo:
W przypadku korzystania ze zintegrowanych rodowisk programistycznych sposb kompilacji zaley od wykorzystywanego pro- FODVV0DLQ
duktu. W przypadku korzystania z kompilatora pracujcego w wierszu polece, zawartego w pakiecie Java Development Kit (JDK), ^
kompilacja odbywa si po wydaniu nastpujcego polecenia: SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@
MDYDFQD]ZDBSOLNXMDYD ^
LQWOLF]ED
Kompilator ten udostpnia m.in. opcje: `
`
Opcja Znaczenie
Deklaracja moe by rwnoczesna z przypisaniem wartoci (inicjalizacj zmiennej):
J Wcza lub wycza generowanie informacji dla debugera QD]ZDB]PLHQQHMW\SB]PLHQQHM ZDUWR
QRZDUQ Wycza wywietlanie ostrzee Przykadowo:
YHUERVH Wywietla dodatkowe informacje o postpie kompilacji LQWOLF]ED 
GHSUHFDWLRQ Wywietla informacje o uyciu przestarzaych metod API Nazwy zmiennych
FODVVSDWK Specyfikuje pooenie plikw bibliotecznych Nazwa zmiennej moe si skada z liter (zarwno maych, jak i duych), cyfr oraz znaku podkrelenia, nie moe jednak zaczyna
VRXUFHSDWK Specyfikuje pooenie plikw rdowych si od cyfry. Dopuszczalny jest take znak dolara, ale przyjmuje si, e jest on zarezerwowany dla narzdzi przetwarzajcych kod
G i raczej nie naley go stosowa w nazwach zmiennych. Mona wykorzysta znaki spoza cisego alfabetu aciskiego (wszelkiego
Okrela pooenie plikw wynikowych rodzaju znaki narodowe).
HQFRGLQJ Okrela standard kodowania znakw w plikach rdowych
VRXUFH Okrela standard, z ktrym kompatybilne s pliki rdowe Deklaracja wielu zmiennych
WDUJHW Okrela kompatybilno kodw wynikowych z poszczeglnymi wersjami maszyn wirtualnych W jednym wierszu mona deklarowa wiele zmiennych, jeli s one tego samego typu; schematycznie:
W\SB]PLHQQHMQD]ZDQD]ZDQD]ZD1
KHOS Wywietla skrcon list opcji kompilatora Przykadowo:
Parametr WDUJHW moe przyjmowa jedn z nastpujcych wartoci: LQWSLHUZV]DBOLF]EDGUXJDBOLF]EDWU]HFLDBOLF]ED
 x 1.1 kod zgodny z maszyn wirtualn w wersji 1.1; Deklaracje wielu zmiennych mog by powizane z ich rwnoczesn inicjalizacj:
LQWSLHUZV]DBOLF]ED GUXJDBOLF]EDWU]HFLDBOLF]ED 
 x 1.2 kod zgodny z wersj 1.2 i wyszymi;
 x 1.3 kod zgodny z wersj 1.3 i wyszymi; Zmienne referencyjne
 x 1.4 kod zgodny z wersj 1.4 i wyszymi; Zmienne typw referencyjnych (z ang. reference types), inaczej odnonikowych, deklaruje si tak, jak przedstawiono wyej, czyli:
 x 1.5 kod zgodny z wersj 1.5 i wyszymi; W\SB]PLHQQHMQD]ZDB]PLHQQHM
 x 1.6 kod zgodny z wersj 1.6 i wyszymi; z t rnic, e konstrukcja ta powoduje powstanie jedynie odniesienia, ktremu domylnie zostanie przypisana warto pusta
 x 1.7 kod zgodny z wersj 1.7 i wyszymi; QXOO. Zmiennej referencyjnej po deklaracji naley przypisa odniesienie do obiektu utworzonego oddzieln instrukcj (patrz
 x 5 kod zgodny z wersj 1.5 i wyszymi; sekcja Klasy i obiekty).
 x 6 kod zgodny z wersj 1.6 i wyszymi;
 x 7 kod zgodny z wersj 1.7 i wyszymi.
OPERATORY
TYPY DANYCH Operatory arytmetyczne
Java udostpnia pewn liczb wbudowanych typw danych, czyli takich, ktre oferuje sam jzyk i z ktrych mona korzysta bez Operator Wykonywane dziaanie
potrzeby ich definiowania. Okrela si je jako typy proste lub podstawowe (z ang. primitive types). mnoenie
 dzielenie
Typ znakowy (char)  dodawanie
Typ FKDU suy do reprezentowania wszelkich znakw, m.in. liter. Jest on 16-bitowy i opiera si na standardzie Unicode (czyli  odejmowanie
standardzie umoliwiajcym przedstawienie znakw wystpujcych w wikszoci jzykw wiata). Poniewa znaki reprezentowa-
ne s tak naprawd jako 16-bitowe kody liczbowe, typ ten mona zaliczy rwnie do typw arytmetycznych.  dzielenie modulo (reszta z dzielenia)
 inkrementacja (zwikszanie)
Typ logiczny (boolean)  dekrementacja (zmniejszanie)
Typ ERROHDQ moe reprezentowa jedynie dwie wartoci: WUXH (prawda) i IDOVH (fasz).
S

Operatory logiczne Suma logiczna


Typy arytmetyczne Wynikiem operacji OR (sumy logicznej) jest warto IDO
Operator Symbol VH, wtedy i tylko wtedy, kiedy oba argumenty maj warto
Typy cakowitoliczbowe Rodzaje te rni si zakresem liczb, ktre mona reprezentowa za ich
S

Iloczyn (AND) IDOVH. W kadym innym przypadku wynikiem jest WUXH.


Typy arytmetyczne cakowitoliczbowe su pomoc, co przedstawia ponisza tabela.
Suma (OR) __ Argument 1 Argument 2 Wynik
do reprezentowania liczb cakowitych. Typ Liczba bitw Zakres
W Javie wystpuj cztery ich rodzaje: Negacja (NOT)  WUXH WUXH WUXH
E\WH 8 od 128 do 127
 x E\WH, Operatory logiczne dziaaj wedug zasad opisanych WUXH IDOVH WUXH
 x VKRUW, VKRUW 16 od 32768 do 32767 poniej. IDOVH WUXH WUXH
 x LQW, LQW 32 od 231 do 231 1 Iloczyn logiczny IDOVH IDOVH IDOVH
 x ORQJ. S ORQJ 64 od 263 do 263 1 Wynikiem operacji AND (iloczynu logicznego) jest warto
WUXH, wtedy i tylko wtedy, kiedy oba argumenty maj Negacja logiczna
Osoby programujce w innych jzykach programowania, takich jak C, C++ czy PHP, powinny zwrci uwag, e zakres wartoci warto WUXH. W kadym innym przypadku wynikiem jest Operacja NOT (negacja logiczna) zamienia warto argu-
moliwych do przedstawienia jest z gry ustalony i nie zaley od platformy systemowej, na ktrej uruchamiany jest program w Javie. warto IDOVH. mentu na przeciwn. Jeli argument mia warto WUXH,
bdzie mia warto IDOVH, jeli argument mia warto
S

Typy zmiennopozycyjne Argument 1 Argument 2 Wynik IDOVH, bdzie mia warto WUXH.
Typy zmiennopozycyjne wystpuj w dwch odmianach: Typ Liczba bitw Zakres WUXH WUXH WUXH
 x IORDW (pojedynczej precyzji), IORDW 32 od 3,4e38 do 3,4e38 WUXH IDOVH IDOVH Argument Wynik
 x GRXEOH (podwjnej precyzji), IDOVH WUXH IDOVH WUXH IDOVH
GRXEOH 64 od 1,8e308 do 1,8e308
rnicych si rozmiarem oraz zakresem liczb moliwych IDOVH IDOVH IDOVH S IDOVH WUXH
do zaprezentowania. S

Operatory bitowe
Operator Symbol
KOMENTARZE Iloczyn (AND)
W Javie istniej dwa rodzaje komentarzy, oba zapoyczone z jzykw takich, jak C i C++: Suma (OR) _
 x blokowy, Negacja (NOT) a
 x wierszowy. Rnica symetryczna (XOR) A
Przesunicie bitowe w prawo !!
Komentarz blokowy Przesunicie bitowe w lewo 
Komentarz blokowy rozpoczyna si od znakw  , a koczy si znakami . Wszystko, co znajduje si pomidzy tymi znakami, Przesunicie bitowe w prawo z wypenieniem zerami !!!
jest traktowane przez kompilator jako komentarz i pomijane w procesie kompilacji. Umiejscowienie komentarza blokowego jest
w zasadzie dowolne moe on si znale nawet w rodku instrukcji (pod warunkiem, e nie zostanie przedzielone adne sowo). Operatory przypisania
Komentarzy blokowych nie wolno zagnieda.
FODVV0DLQ Argument 1 Operator Argument 2 Znaczenie
^ x y [ \
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@  [ [\
^
x y
 x  y [ [\
WRMHVWNRPHQWDU]EORNRZ\ x y [ [ \
  x  y [ [\
6\VWHPRXWSULQWOQ 7RMHVWQDSLV 
` x  y [ [\
` x  y [ [\
x !! y [ [!!\
Komentarz wierszowy !!! [ [!!!\
x y
Komentarz wierszowy zaczyna si od znakw  i obowizuje do koca danej linii programu. Wszystko to, co wystpuje po tych
x y [ [ \
dwch znakach a do koca biecej linii, jest ignorowane przez kompilator.
FODVV0DLQ x _ y [ [_\
^ x A y [ [A\

Cig dalszy na stronie 2


Ebookpoint.pl KOPIA DLA: Kornel Krawczyk corni7@o2.pl
Tablice informatyczne. Java. Wydanie III

S
Operatory porwnywania Instrukcja continue Przykad (wywietlenie parzystych liczb z zakresu 1 20):
Instrukcja FRQWLQXH powoduje przerwanie biecej iteracji IRU LQWL L L ^
Operator Opis LI L  FRQWLQXH
ptli i przejcie do kolejnej iteracji.
Wynikiem jest WUXH, jeli argumenty s sobie rwne 6\VWHPRXWSULQWOQ L 
S
 Wynikiem jest WUXH, jeli argumenty s rne `
! Wynikiem jest WUXH, jeli argument lewostronny jest wikszy od prawostronnego
 Wynikiem jest WUXH, jeli argument lewostronny jest mniejszy od prawostronnego
! Wynikiem jest WUXH, jeli argument lewostronny jest wikszy od prawostronnego lub rwny mu
TABLICE
 Wynikiem jest WUXH, jeli argument lewostronny jest mniejszy od prawostronnego lub rwny mu Deklaracje tablic Waciwo length

S
Priorytet operatorw Tablice w Javie s obiektami. Aby mc skorzysta z tablicy, Kada tablica ma waciwo OHQJWK, ktra okrela liczb
(Od najsilniejszych do najsabszych; operatory w jednym wierszu maj ten sam priorytet). naley najpierw zadeklarowa zmienn tablicow, a nastp- jej komrek.
nie utworzy sam tablic (obiekt tablicy). Schematycznie Przykad:
Grupa operatorw Symbole deklaracja taka jest nastpujca: LQWWDEOLFD>@ QHZLQW>@
Inkrementacja przyrostkowa ,  W\SBWDEOLF\QD]ZDBWDEOLF\>@ IRU LQWL LWDEOLFDOHQJWK
Inkrementacja przedrostkowa, negacja , , a,  lub (co ma identyczne znaczenie): L ^
Mnoenie, dzielenie , ,  W\SBWDEOLF\>@QD]ZDBWDEOLF\ WDEOLFD>L@ L
Tablic tworzy si za pomoc operatora QHZ o postaci: `
Dodawanie, odejmowanie , 
QHZW\SBWDEOLF\>OLF]EDBHOHPHQWyZ@
Przesunicia bitowe , !!, !!! Tablic mona rwnie jednoczenie zadeklarowa i utwo- Tablice wielowymiarowe
Porwnania (mniejsze, wiksze) , !,  , ! rzy, korzystajc z konstrukcji: Deklaracja regularnych tablic wielowymiarowych odbywa
Porwnania (rwne, rne) , W\SBWDEOLF\QD]ZDBWDEOLF\>@ QHZW\SB si w sposb analogiczny do deklaracji tablic jednowymia-
WDEOLF\>OLF]EDBHOHPHQWyZ@ rowych, dodawane s jedynie kolejne nawiasy kwadratowe.
Bitowe AND
lub: Schematyczna deklaracja tablicy dwuwymiarowej ma po-
Bitowe XOR A W\SBWDEOLF\>@QD]ZDBWDEOLF\ QHZW\SB sta:
Bitowe OR _ WDEOLF\>OLF]EDBHOHPHQWyZ@ W\SBWDEOLF\QD]ZDBWDEOLF\>@>@
Logiczne AND Przykad: Tablica tego typu moe zosta zainicjowana przy uyciu
Logiczne OR __ FODVV0DLQ skadni z nawiasami klamrowymi:
" ^ W\SBWDEOLF\QD]ZDBWDEOLF\>@>@ ^
Warunkowy SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ ^ZDUWRZDUWRZDUWR1`
Przypisania ,  ,  , ,  ,  , , A , _ ,  , !! , !!! ^ ^ZDUWRZDUWRZDUWR1`
LQWWDE>@ QHZLQW>@ `
WDE>@  Przykad (dwuwymiarowa tablica liczb cakowitych wype-
INSTRUKCJE JZYKA 6\VWHPRXWSULQWOQ 3LHUZV]\
HOHPHQWWDEOLF\PDZDUWR
niona danymi):
WDE>@  LQWWDE>@>@ ^
S

Instrukcja warunkowa if...else Ptla for ` ^`


Podstawowa instrukcja warunkowa ma posta: Ptla IRU ma ogln posta: ` ^`
`
LI ZDUXQHN ^ IRU Z\UDHQLHSRF]WNRZHZ\UDHQLH
LQVWUXNFMH ZDUXQNRZHZ\UDHQLHPRG\ILNXMFH ^ Inicjalizacja tablicy Do jej utworzenia mona uy take standardowego opera-
` LQVWUXNFMHGRZ\NRQDQLD tora QHZ w postaci:
` W przypadku niewielkich tablic mona dokona inicjalizacji QHZW\SBWDEOLF\>OLF]EDBHOHPHQWyZ@
HOVH^ tablicy, ujmujc wartoci, ktre maj si znale w jej komr-
LQVWUXNFMH  x Z\UDHQLH SRF]WNRZH jest stosowane do >OLF]EDBHOHPHQWyZ@
zainicjalizowania zmiennej uywanej jako licznik liczby kach, w nawias klamrowy. Nie trzeba wtedy korzysta z ope-
` Przykad:
wykona ptli; ratora QHZ. Schematycznie deklaracja taka jest nastpujca:
Oznacza to, e jeeli ZDUXQHN jest prawdziwy, to zostan LQWWDE>@>@ QHZLQW>@>@
 x Z\UDHQLHZDUXQNRZH okrela warunek, jaki musi W\SBWDEOLF\QD]ZDBWDEOLF\>@ ^ZDUWR
wykonane LQVWUXNFMH, w przeciwnym wypadku zosta- ZDUWRZDUWR1`
LQWFRXQW 
n wykonane LQVWUXNFMH. Blok HOVH jest opcjonalny. by speniony, aby dokona kolejnego przejcia w ptli; IRU LQWL LL ^
 x Z\UDHQLH PRG\ILNXMFH uywane jest zwy- Na przykad deklaracj szecioelementowej tablicy liczb IRU LQWM MM ^
Instrukcja warunkowa if...else if kle do modyfikacji zmiennej bdcej licznikiem. cakowitych typu LQW i wypenienie jej kolejnych komrek WDE>L@>M@ FRXQW
Instrukcja zoona LIHOVHLI ma posta: Przykad: wartociami od 1 do 6 mona wykona za pomoc instrukcji: S
`
LI ZDUXQHN ^ LQWWDEOLFD>@ ^` `
IRU LQWL LL ^
LQVWUXNFMH 6\VWHPRXWSULQWOQ 3U]HELHJL 
` `
HOVHLI ZDUXQHN ^
LQVWUXNFMH Rozszerzona ptla for KLASY I OBIEKTY
` Poczwszy od Javy w wersji 5.0 (1.5), dostpna jest rozsze-

S
GDOV]HEORNLHOVHLI rzona ptla IRU (z ang. HQKDQFHG IRU), nazywana te Budowa klasy Metody klas
HOVH^ ptl typu IRUHDFK. Umoliwia ona automatyczn iteracj Definicja klasy ma schematyczn posta: Definicje metod
LQVWUXNFMH1 po obiekcie udostpniajcym iterator (np. po kolekcji lub ta- FODVVQD]ZDBNODV\
` blicy). Konstrukcja jest nastpujca: Metody definiowane s w ciele klasy pomidzy znakami na-
^ wiasu klamrowego. Kada metoda moe przyjmowa argu-
Oznacza to, e jeeli ZDUXQHN jest prawdziwy, to zosta- IRU W\SQD]ZDREM ^ WUHNODV\
n wykonane LQVWUXNFMH, w przeciwnym wypadku, LQVWUXNFMH menty oraz zwraca wynik. Schematyczna deklaracja metody
GHILQLFMHSyOLPHWRG ma posta:
jeeli prawdziwy jest ZDUXQHN, zostan wykonane LQ ` `
VWUXNFMH. Liczba blokw HOVH LI nie jest ograni- W kolejnych przebiegach ptli pod QD]ZD bdzie podsta- W\SBZ\QLNXQD]ZDBPHWRG\ DUJXPHQW\BPHWRG\
Przykad: ^
czona. Jeeli aden warunek nie bdzie speniony, zostan wiana warto kolejnego elementu (np. kolejnej komrki
FODVV3XQNW LQVWUXNFMHPHWRG\
wykonane LQVWUXNFMH1 z bloku HOVH. Blok HOVH jest tablicy). Ptla bdzie dziaaa tak dugo, a zostan przejrzane
^ `
opcjonalny. Przykad: wszystkie elementy obiektu REMtypu W\S. Przykad: LQW[ Po umieszczeniu w ciele klasy deklaracja taka bdzie wygl-
FODVV0DLQ SXEOLFFODVV0DLQ^ LQW\ daa nastpujco:
^ SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ ^ ` FODVVQD]ZDBNODV\
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ LQWWDE>@ ^ ^
^ ` W\SBZ\QLNXQD]ZDBPHWRG\ DUJXPHQW\B
IRU LQWYDOWDE ^ Tworzenie obiektw
LQW[  PHWRG\
LI [! ^ 6\VWHPRXWSULQWOQ YDO  Zmienna typu obiektowego (odnonikowego, referencyjne- ^
6\VWHPRXWSULQWOQ [ZLNV]H ` go) tworzona jest za pomoc konstrukcji: LQVWUXNFMHPHWRG\
RG]HUD  ` QD]ZDBNODV\QD]ZDB]PLHQQHM `
` ` `
Do tak zadeklarowanej zmiennej mona przypisa obiekt
HOVHLI [ ^ Ptla while utworzony za pomoc operatora QHZ: Jeli metoda nie zwraca adnego wyniku, jako typ wyniku
6\VWHPRXWSULQWOQ [PQLHMV]H naley zastosowa sowo YRLG, jeli natomiast nie przyjmuje
RG]HUD  Oglna posta ptli ZKLOH jest nastpujca: QHZQD]ZDBNODV\ 
ZKLOH Z\UDHQLHZDUXQNRZH ^ adnych argumentw, pomidzy znakami nawiasu okrgego
` Jednoczesna deklaracja zmiennej, utworzenie obiektu i przy- nie naley nic wpisywa.
HOVH^ LQVWUXNFMH pisanie go zmiennej odbywa si za pomoc schematycznej
6\VWHPRXWSULQWOQ [UyZQH]HUR  ` konstrukcji: Przykad:
` Oznacza to, e dopki warunek jest prawdziwy, bd wykony- QD]ZDBNODV\QD]ZDB]PLHQQHM QHZ FODVV3XQNW
` wane instrukcje. Przykad: QD]ZDBNODV\  ^
` LQWL  LQW[
Przykad: LQW\
ZKLOH L ^
Instrukcja switch 6\VWHPRXWSULQWOQ 3U]HELHJL  3XQNWPRM3XQNW QHZ3XQNW  YRLGZ\VZLHWO:VSROU]HGQH
Instrukcja warunkowa VZLWFK moe zastpi seri instrukcji L ^
LIHOVHLI: ` Pola klas 6\VWHPRXWSULQWOQ ZVSyU]GQD[
VZLWFK Z\UDHQLH ^ Definicje pl [ 
FDVHZDUWR Ptla do...while Pola definiowane s w ciele klasy, podobnie jak zwyke zmien- 6\VWHPRXWSULQWOQ ZVSyU]GQD\
LQVWUXNFMH Ptla GRZKLOH jest odmian ptli ZKLOH i ma posta: \ 
ne. Najpierw naley poda typ pola, a po nim nazw pola: `
EUHDN GR^
FODVVQD]ZDBNODV\ `
FDVHZDUWR LQVWUXNFMH
^
LQVWUXNFMH `
W\SBSRODQD]ZDBSROD Odwoania do metod obiektu
EUHDN ZKLOH ZDUXQHN 
W\SBSRODQD]ZDBSROD
FDVHZDUWR Oznacza to, e LQVWUXNFMH bd wykonywane, dopki  Po utworzeniu obiektu do jego metod mona odwoywa si
LQVWUXNFMH warunek jest prawdziwy. Przykad: W\SBSROD1QD]ZDBSROD1 (podobnie jak w przypadku pl) za pomoc operatora kropki
EUHDN LQWL  ` (); schematycznie:
GHIDXOW GR^ QD]ZDBRELHNWXQD]ZDBPHWRG\ 
LQVWUXNFMH 6\VWHPRXWSULQWOQ 3U]HELHJL  Odwoania do pl obiektu Przykad:
` ` Po utworzeniu obiektu do jego pl mona odwoywa si za 3XQNWSXQNW QHZ3XQNW 
Znaczenie jest takie samo, jak w innych jzykach programo- ZKLOH L  pomoc operatora kropki (); schematycznie: SXQNWZ\VZLHWO:VSROU]HGQH 
wania. Jeeli wartoci wyraenia jest ZDUWR, wyko- QD]ZDBRELHNWXQD]ZDBSROD
nywane s LQVWUXNFMH, jeeli wartoci wyraenia jest Instrukcja break Przykad: Argumenty metod
ZDUWR, wykonywane s LQVWUXNFMH itd. Jeeli Ptle pojedyncze 3XQNWSXQNW QHZ3XQNW 
nie uda si dopasowa wartoci wyraenia do wartoci wyst- Metoda moe mie dowoln liczb argumentw umiesz-
Instrukcja EUHDN powoduje przerwanie wykonywania bie- SXQNW[  czonych w nawiasie okrgym za jej nazw. Poszczeglne
pujcych po klauzulach FDVH, wykonywane s instrukcje wy- SXQNW\ 
cej iteracji ptli i opuszczenie bloku ptli. Przykad: argumenty naley oddzieli od siebie znakami przecinka;
stpujce po sowie GHIDXOW. Instrukcja EUHDN przerywa
wykonywanie bloku VZLWFK. LQWL  Wartoci domylne pl schematycznie:
ZKLOH WUXH ^ Kade niezainicjowane pole klasy otrzymuje warto domyln, W\SBZ\QLNXQD]ZDBPHWRG\ W\SBDUJXPHQWXB
Operator warunkowy 6\VWHPRXWSULQWOQ 3U]HELHJL  QD]ZDBDUJXPHQWXBW\SBDUJXPHQWXB
LI L!  EUHDN
zalen od jego typu. Wartoci te zaprezentowane s w poni- QD]ZDBDUJXPHQWXBW\SBDUJXPHQWX
Operator warunkowy ma posta: szej tabeli.
ZDUXQHN"ZDUWRZDUWR ` B1QD]ZDBDUJXPHQWXB1
Zapis ten oznacza, e jeeli ZDUXQHN jest prawdziwy, warto- Typ Warto domylna Przykad:
Ptle zagniedone YRLGXVWDZ;< LQWZVS;LQWZVS<
ci wyraenia staje si ZDUWR, w przeciwnym wypadku E\WH 
wartoci wyraenia staje si ZDUWR. W przypadku ptli zagniedonych instrukcja EUHDN po- ^
woduje przerwanie biecej iteracji jedynie tej ptli, w ktrej VKRUW  [ ZVS;
FODVV0DLQ LQW 
^
zostaa umieszczona: \ ZVS<
IRU LQWL LL ^ ORQJ  `
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@
IRU LQWM MM ^ IORDW  Argumentami mog by typy zarwno proste, jak i obiektowe.
^ LI L  EUHDNZW\PPLHMVFX
LQWOLF]ED  ]RVWDQLHSU]HUZDQHZ\NRQ\ZDQLHSWOL GRXEOH 
LQWOLF]ED OLF]ED" Przecianie metod
ZHZQWU]QHM FKDU ?
6\VWHPRXWSULQWOQ OLF]ED  6\VWHPRXWSULQWOQ LM  W kadej klasie moe istnie dowolna liczba metod o takiej
ERROHDQ IDOVH
` ` samej nazwie, jeli tylko rni si przyjmowanymi argumen-
` S RELHNWRZ\ QXOO S
tami. Mog, ale nie musz si one rni rwnie typem zwra-
`

2
Ebookpoint.pl KOPIA DLA: Kornel Krawczyk corni7@o2.pl
Tablice informatyczne. Java. Wydanie III

S
canego wyniku. Technika ta jest nazywana przecianiem Jeeli konstruktor wymaga podania argumentw, naley Przykad: Przykad:
(z ang. overloading) metod. Przykad: umieci je w nawiasie okrgym, tak jak w przypadku zwy- $OLF]ED  FODVV3XQNW
SXEOLFFODVV3XQNW kej metody: ^
^ QHZQD]ZDBNODV\ DUJXPHQW\BNRQVWUXNWRUD  Dziedziczenie SULYDWHLQW[
LQW[ Przykad: Klasy potomne SULYDWHLQW\
LQW\ 3XQNWSXQNW QHZ3XQNW   SXEOLFLQWSRELHU];
YRLGXVWDZ;< LQWZVS;LQWZVS< W Javie dziedziczenie wyraa si za pomoc sowa H[WHQGV. ^
^ Przecianie konstruktorw Schematyczna konstrukcja jest nastpujca: UHWXUQ[
[ ZVS; FODVVNODVDBSRWRPQDH[WHQGVNODVDBED]RZD `
\ ZVS< Konstruktory, tak jak zwyke metody, mog by przeciane, ^
tzn. kada klasa moe mie kilka konstruktorw, jeli tylko r- SXEOLFLQWSRELHU]<
` WUHNODV\SRWRPQHM ^
YRLGXVWDZ;< 3XQNWSXQNW ni si one przyjmowanymi argumentami. Przykad: ` UHWXUQ\
^ FODVV3XQNW
[ SXQNW[
Zapis taki oznacza, e klasa potomna dziedziczy z klasy `
^ bazowej. `
\ SXQNW\ LQW[
` LQW\
Przykad:
` 3XQNW FODVV3XQNW Dostp chroniony
^ ^ Skadowe klasy, oznaczone sowem SURWHFWHG, to ska-
Rodzaje klas [  LQW[ dowe chronione. S one dostpne jedynie dla metod danej
Klasy w Javie mona oglnie podzieli na: \  LQW\ klasy, klas potomnych oraz klas z tego samego pakietu.
` ` Specyfikator dostpu SURWHFWHG naley umieci przed
 x 
pakietowe, 3XQNW LQWZVS;LQWZVS< nazw typu, co schematycznie wyglda tak:
 x 
publiczne, ^ FODVV3XQNW'H[WHQGV3XQNW SURWHFWHGQD]ZDBW\SXQD]ZDB]PLHQQHM
 x 
wewntrzne, [ ZVS; ^ Podobnie jest z metodami specyfikator dostpu powinien
 x 
interfejsowe (patrz sekcja Interfejsy). \ ZVS< LQW]
` by pierwszym elementem deklaracji:
Jeli przed nazw klasy nie znajduje si modyfikator SXE ` SURWHFWHGW\SB]ZUDFDQ\QD]ZDBPHWRG\
3XQNW 3XQNWSXQNW
OLF, to jest to klasa pakietowa, czyli klasa dostpna jedynie ^ DUJXPHQW\
dla innych klas z tego samego pakietu. Jeli natomiast przed [ SXQNW[
Konstruktory w klasach potomnych Przykad:
nazw klasy znajduje si modyfikator SXEOLF, to jest to kla- \ SXQNW\ Podczas tworzenia obiektu klasy potomnej zawsze wywoy- FODVV3XQNW
sa publiczna, czyli klasa dostpna dla wszystkich innych klas. ` wany jest domylny, bezargumentowy konstruktor klasy ba- ^
Deklaracja klasy pakietowej ma posta: ` zowej. Jeeli w klasie bazowej nie istnieje konstruktor domyl- SURWHFWHGLQW[
FODVVQD]ZDBNODV\ ny, wymagane jest jawne wywoanie jednego z pozostaych SURWHFWHGLQW\
^ Konstruktor domylny konstruktorw. Wywoanie to wymaga zastosowania skadni SURWHFWHGLQWSRELHU];
SRODLPHWRG\NODV\ Jeeli w klasie nie bdzie zdefiniowany aden konstruktor, zo- ze sowem kluczowym VXSHU. Sowo to oznacza w tym przy- ^
` stanie do niej automatycznie dodany bezargumentowy kon- padku wywoanie konstruktora klasy bazowej. Schematyczna UHWXUQ[
Deklaracja klasy publicznej ma posta: struktor domylny. Klasa taka bdzie si zatem zachowywaa konstrukcja jest nastpujca: `
SXEOLFFODVVQD]ZDBNODV\ tak, jakby miaa schematyczn posta: SXEOLF SURWHFWHGLQWSRELHU]<
^ FODVVNODVDBSRWRPQDH[WHQGVNODVDBED]RZD ^
SRODLPHWRG\NODV\ SXEOLFFODVVQD]ZDBNODV\
^ ^ UHWXUQ\
`
QD]ZDBNODV\ NODVDBSRWRPQD `
Klasy wewntrzne to klasy zdefiniowane wewntrz innych ^ `
^
klas. Posta schematyczna: ` VXSHU DUJXPHQW\ 
>VSHF\ILNDWRUGRVWSX@FODVVNODVDB SRODLPHWRG\NODV\  Dostp pakietowy
]HZQWU]QD GDOV]\NRGNRQVWUXNWRUD
^ ` Dostp pakietowy jest dostpem domylnym, stosowanym,
Jeeli w klasie zostanie jawnie zdefiniowany konstruktor bez-   kiedy przed skadow klasy nie wystpuje aden modyfikator
>VSHF\ILNDWRUGRVWSX@FODVVNODVDB
ZHZQWU]QD argumentowy, automatycznie stanie si on konstruktorem ` dostpu. Konstrukcja taka oznacza, e dostp do skadowej
^ domylnym (jest to wane przy dziedziczeniu), niezalenie od ` maj wszystkie klasy pakietu, w ktrym si ona znajduje.
SRODLPHWRG\NODV\ZHZQWU]QHM tego, czy istniej inne konstruktory. Jeli metodzie VXSHU przekae si argumenty, zostanie wy-
woany konstruktor klasy bazowej, ktry tym argumentom Przykad:
`
SRODLPHWRG\NODV\]HZQWU]QHM odpowiada. Wane jest, aby metoda VXSHU bya pierwsz FODVV3XQNW
Sowo kluczowe this ^
` instrukcj konstruktora klasy potomnej.
Sowo kluczowe WKLV to odwoanie do obiektu biecego. LQW[
Przykad klasy wewntrznej (,QVLGH): Przykad:
Mona je traktowa jako referencj do aktualnego obiektu. LQW\
SXEOLFFODVV2XWVLGH Odwoanie do pl i metod przez wskazanie WKLV odbywa si FODVV3XQNW LQWSRELHU];
^ za pomoc operatora kropki (): ^ ^
FODVV,QVLGH LQW[ UHWXUQ[
WKLVQD]ZDBSROD ZDUWR
^ LQW\ `
WKLVQD]ZDBPHWRG\ DUJXPHQW\  3XQNW LQW[LQW\
` LQWSRELHU]<
`
Umoliwia to m.in. stosowanie w metodach i konstruktorach ^
argumentw o nazwach identycznych z nazwami pl klasy. WKLV[ [ ^
Poniewa klasy wewntrzne s definiowane wewntrz innych Przykad: WKLV\ \ UHWXUQ\
klas, w pewnym sensie mona je traktowa jako skadowe ` `
tych klas, a zatem mona te w stosunku do nich stosowa SXEOLFFODVV3XQNW `
^ `
modyfikatory dostpu. W zwizku z tym klasy wewntrzne
LQW[ Klasy i skadowe finalne
mog by: FODVV3XQNW'H[WHQGV3XQNW
LQW\ ^
 x 
pakietowe, 3XQNW LQW[LQW\
 x 
publiczne, LQW] Klasy finalne
^ 3XQNW' LQW[LQW\LQW]
 x 
prywatne, WKLV[ [ ^ Klasa finalna to taka, z ktrej nie wolno wyprowadza innych
 x 
chronione WKLV\ \ VXSHU [\  klas, innymi sowy: taka, z ktrej nie mog dziedziczy inne
i naley je traktowa tak jak skadowe wymienionych typw. ` WKLV] ] klasy. Pozwala to tworzy klasy, ktrych posta bdzie z gry
` ` ustalona. Jeli klasa ma sta si klas finaln, naley przed jej
Konstruktory ` nazw umieci sowo kluczowe ILQDO, zgodnie ze sche-
Skadowe statyczne matem:
Definicja konstruktora Skadowe statyczne s to pola i metody klasy, ktre mog ist- Modyfikatory dostpu PRG\ILNDWRUBGRVWSXILQDOFODVV
nie, nawet jeli nie istnieje obiekt tej klasy. Kada taka meto- Przed kadym polem i kad metod moe wystpi modyfi- QD]ZDBNODV\
Konstruktor to specjalna metoda, ktra jest wywoywana ^
zawsze po utworzeniu obiektu w pamici. Metoda bdca da lub takie pole s wsplne dla wszystkich obiektw tej klasy. kator (inaczej specyfikator) dostpu, okrelajcy prawa dost-
Skadowe te oznaczane s sowem VWDWLF. pu do skadowych klasy. Wyrnia si cztery rodzaje dostpu: SRODLPHWRG\NODV\
konstruktorem nigdy nie zwraca wyniku i musi mie nazw `
zgodn z naw klasy; schematycznie: Metody statyczne  x 
publiczny, Przykad:
SXEOLFFODVVQD]ZDBNODV\
Metody statyczne oznacza si sowem VWDWLF, ktre zwy-  x 
prywatny,
^ SXEOLFILQDOFODVV([DPSOH
czajowo powinno znale si zaraz za modyfikatorem dost-  x 
chroniony, ^
QD]ZDBNODV\  x 
pakietowy.
^ pu; schematycznie: SXEOLFLQWOLF]ED
NRGNRQVWUXNWRUD PRG\ILNDWRUBGRVWSXVWDWLFW\SB]ZUDFDQ\ Domylnie, jeeli przed skadow klasy nie wystpuje adne SXEOLFYRLGZ\VZLHWO
` QD]ZDBPHWRG\ DUJXPHQW\ okrelenie, dostp jest pakietowy, co oznacza, e dostp do ^
` ^ tej skadowej maj wycznie klasy pakietu, w ktrym si ona 6\VWHPRXWSULQWOQ OLF]ED 
WUHPHWRG\ znajduje. Dostp publiczny jest okrelany sowem SXEOLF, `
Przykad: `
` dostp prywatny sowem SULYDWH, a chroniony so-
SXEOLFFODVV3XQNW Przykad: wem SURWHFWHG.
^ Pola finalne
LQW[ SXEOLFFODVV$
^ Dostp publiczny Pole klasy oznaczone sowem ILQDO staje si polem final-
LQW\
3XQNW SXEOLFVWDWLFYRLGI Jeeli dana skadowa klasy jest publiczna, oznacza to, e nym, czyli takim, ktrego warto jest staa i nie mona jej
^ ^ maj do niej dostp wszystkie inne klasy, czyli dostp nie jest zmienia. Sowo kluczowe ILQDO umieszcza si zwyczajowo
[  6\VWHPRXWSULQWOQ 0HWRGDINODV\ w aden sposb ograniczony. Modyfikator dostpu SXEOLF przed nazw typu danego pola:
\  $  naley zatem umieci przed nazw typu, co schematycznie ILQDOW\SBSRODQD]ZDBSROD
` ` wyglda tak: lub oglniej:
` ` SXEOLFQD]ZDBW\SXQD]ZDB]PLHQQHM PRG\ILNDWRUBGRVWSX>VWDWLF@ILQDOW\SB
Tak napisan metod mona wywoa klasycznie, tzn. po utwo- Podobnie jest z metodami modyfikator dostpu powinien SRODQD]ZDBSROD
Argumenty konstruktorw rzeniu obiektu klasy $, np. w postaci: by pierwszym elementem deklaracji: Poprawne s wszystkie ponisze deklaracje:
Konstruktor moe by bezargumentowy albo moe przyjmo- $D QHZ$  SXEOLFW\SB]ZUDFDQ\QD]ZDBPHWRG\ ILQDOLQWOLF]ED
wa argumenty uywane (bezporednio lub porednio) np. DI  DUJXPHQW\ SXEOLFILQDOGRXEOHOLF]ED
do zainicjowania pl obiektu. Argumenty przekazuje si do- Poniewa jednak metody statyczne istniej nawet wtedy, Przykad: SXEOLFVWDWLFILQDOFKDU]QDN
kadnie w taki sam sposb, jak w przypadku zwykych metod; kiedy nie ma adnego obiektu danej klasy, moliwe jest wy- FODVV3XQNW Po takiej deklaracji pierwsze przypisanie wartoci ustala nie-
schematycznie: woanie w postaci: ^ zmienn warto pola.
FODVVQD]ZDBNODV\ $I  SXEOLFLQW[ Deklaracja moe te by poczona z inicjalizacj, np.:
^ Oglniej metod statyczn mona wywoa w postaci: SXEOLFLQW\ SXEOLFILQDOGRXEOHOLF]ED 
QD]ZDBNODV\ W\SDUJXPHQWW\S QD]ZDBNODV\QD]ZDBPHWRG\ DUJXPHQW\B SXEOLFLQWSRELHU]; Jeli pole finalne jest typu referencyjnego, np.:
DUJXPHQWW\S1DUJXPHQW1 PHWRG\  ^ ILQDO3XQNWSXQNW QHZ3XQNW 
^ bez koniecznoci tworzenia obiektu danej klasy. UHWXUQ[ oznacza to, e nie mona zmienia pierwotnie przypisanej re-
NRGNRQVWUXNWRUD ` ferencji. Nic jednak nie stoi na przeszkodzie, aby modyfikowa
` Pola statyczne SXEOLFLQWSRELHU]< pola obiektu wskazywanego przez t referencj, np.:
` Pola statyczne s deklarowane przez umieszczenie sowa ^ SXQNW[ 
Przykad: VWDWLF przed typem pola; schematycznie: UHWXUQ\
SXEOLFFODVV3XQNW VWDWLFW\SBSRODQD]ZDBSROD ` Metody finalne
^ `
lub Metoda oznaczona sowem ILQDO staje si metod finaln,
LQW[ PRG\ILNDWRUBGRVWSXVWDWLFW\SBSROD co oznacza, e nie bdzie moliwe jej przesonicie w klasie
LQW\ Dostp prywatny
QD]ZDBSROD potomnej. Sowo ILQDO umieszczane jest przed typem war-
3XQNW LQWZVS;LQWZVS< Przykad: Skadowe oznaczone sowem SULYDWH to takie, ktre do- toci zwracanej przez metod:
^ stpne s jedynie z wntrza danej klasy, tzn. wszystkie metody ILQDOW\SB]ZUDFDQ\QD]ZDBPHWRG\
SXEOLFFODVV$
[ ZVS; danej klasy mog je dowolnie odczytywa, zapisywa (pola) DUJXPHQW\
^
\ ZVS< i wywoywa (metody), natomiast adna inna klasa nie moe
SXEOLFVWDWLFLQWOLF]ED lub oglniej:
` ich ani odczyta, ani zapisa. Modyfikator dostpu SULYDWH
` PRG\ILNDWRUBGRVWSX>VWDWLF@ILQDOW\SB
` naley umieci przed nazw typu; schematycznie:
Do pl statycznych mona odwoywa si tak, jak do innych ]ZUDFDQ\QD]ZDBPHWRG\ DUJXPHQW\
SULYDWHQD]ZDBW\SXQD]ZDB]PLHQQHM Prawidowe s nastpujce przykadowe deklaracje:
Wywoanie konstruktora pl klasy, poprzedzajc je nazw obiektu, czyli stosujc kon-
strukcj: Podobnie jest z metodami specyfikator dostpu powinien ILQDOYRLGPHWRGD ^ NRGPHWRG\ `
Konstruktor bezargumentowy (czyli konstruktor domylny) by pierwszym elementem deklaracji: SXEOLFILQDOLQWPHWRGD ^ NRG
jest wywoywany automatycznie w trakcie tworzenia obiektu QD]ZDBRELHNWXQD]ZDBSROD
bd te poprzedzajc je nazw klasy: SULYDWHW\SB]ZUDFDQ\QD]ZDBPHWRG\ PHWRG\ `
danej klasy, czyli po wykonaniu instrukcji: DUJXPHQW\ SXEOLFVWDWLFILQDOYRLGPHWRGD 
S QD]ZDBNODV\QD]ZDBSROD S
QHZQD]ZDBNODV\  ^ NRGPHWRG\ `

3
Ebookpoint.pl KOPIA DLA: Kornel Krawczyk corni7@o2.pl
Tablice informatyczne. Java. Wydanie III
SXEOLFVWDWLFILQDOLQWPHWRGD LQW mniej jedna metoda abstrakcyjna, klasa taka musi by rwnie WYJTKI

S
DUJXPHQW ^ NRGPHWRG\ ` zadeklarowana jako abstrakcyjna (nie wyklucza to istnienia

S
Argumenty finalne klas abstrakcyjnych, w ktrych adna z metod nie jest abs- Instrukcja try...catch FDWFK $ULWKPHWLF([FHSWLRQH ^
trakcyjna): 6\VWHPRXWSULQWOQ 1LHSUDZLGRZD
Argument finalny to taki, ktrego nie wolno zmienia w ciele Do przechwytywania wyjtkw suy blok instrukcji RSHUDFMDDU\WPHW\F]QD 
metody. Aby uczyni argument finalnym, naley umieci >SXEOLF@DEVWUDFWFODVVQD]ZDBNODV\^
WU\FDWFK o schematycznej, podstawowej postaci: 6\VWHPRXWSULQWOQ 3U]\SLVXM
sowo ILQDO przed jego typem. Schematycznie: >VSHF\ILNDWRUBGRVWSX@DEVWUDFWW\SB
WU\^ ]PLHQQHMOLF]EDZDUWR 
PRG\ILNDWRUBGRVWSX>VWDWLF@>ILQDO@ ]ZUDFDQ\QD]ZDBPHWRG\ DUJXPHQW\ 
LQVWUXNFMHPRJFHVSRZRGRZDZ\MWHN OLF]ED 
W\SB]ZUDFDQ\QD]ZDBPHWRG\ ILQDOW\SB ` ` `
DUJXPHQWXQD]ZDBDUJXPHQWX Metoda abstrakcyjna ma jedynie definicj, nie moe zawiera FDWFK 7\S:\MWNXLGHQW\ILNDWRU:\MWNX ^ SXQNW[ OLF]ED
Na przykad deklaracja publicznej metody o nazwie PHWR adnego kodu. Przykadowa publiczna i abstrakcyjna klasa REVXJDZ\MWNX `
GD, ktra nie zwraca adnej wartoci, lecz przyjmuje jeden 6KDSH zawierajca abstrakcyjn metod GUDZ bdzie ` FDWFK ([FHSWLRQH ^
finalny argument typu LQW o nazwie DUJXPHQW, bdzie miaa posta: W nawiasie klamrowym, wystpujcym po sowie WU\, 6\VWHPRXWSULQWOQ %GRJyOQ\ 
miaa posta: umieszcza si instrukcj (instrukcje), ktra moe spowodo- 6\VWHPRXWSULQWOQ H 
SXEOLFDEVWUDFWFODVV6KDSH^
SXEOLFYRLGPHWRGD ILQDOLQWDUJXPHQW wa wystpienie bdu. W bloku wystpujcym po FDWFK `
^ SXEOLFDEVWUDFWYRLGGUDZ  `
naley umieci kod, ktry ma zosta wykonany, kiedy wy-
 WUHPHWRG\  ` stpi wyjtek.
` Po takiej deklaracji nie mona bdzie tworzy obiektw klasy Przykad: Zgaszanie wyjtkw
Klasy i metody abstrakcyjne 6KDSH. SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ Zgoszenie wasnego wyjtku polega na utworzeniu nowego
Zadeklarowanie metody jako abstrakcyjnej wymusza jej rede- ^ obiektu jednej z klas wyjtkw. Za pomoc instrukcji QHZ
Klasy i metody abstrakcyjne deklaruje si za pomoc sowa S klaracj w klasie potomnej. LQWWDE>@ QHZLQW>@ naley utworzy nowy obiekt klasy, ktra dziedziczy (pored-
kluczowego DEVWUDFW. Jeeli w klasie znajduje si co naj- WU\^ nio lub bezporednio) z klasy 7KURZDEOH. W najbardziej
SU]HNURF]HQLHLQGHNVXWDEOLF\ oglnym przypadku bdzie to klasa ([FHSWLRQ. Tak utwo-
WDE>@  rzony obiekt musi sta si parametrem instrukcji WKURZ, np.:
INTERFEJSY `
FDWFK $UUD\,QGH[2XW2I%RXQGV([FHSWLRQH ^
WKURZQHZ([FHSWLRQ 
Jeli taki wyjtek zostanie obsuony przez znajdujc si
SU]HFKZ\FHQLHZ\MWNX w danym bloku (danej metodzie) instrukcj WU\
Tworzenie interfejsu >VSHF\ILNDWRUGRVWSX@>DEVWUDFW@
S

6\VWHPRXWSULQWOQ 1LHSUDZLGRZ\ FDWFK, nie trzeba robi nic wicej. Jeli jednak nie zostanie
FODVVQD]ZDBNODV\LPSOHPHQWVQD]ZDB
Interfejs to klasa czysto abstrakcyjna, czyli taka, w ktrej LQGHNVWDEOLF\ 
LQWHUIHMVX^ `
obsuony, w specyfikacji metody naley zaznaczy, e moe
wszystkie metody traktuje si jako abstrakcyjne. Interfejs  `
ona taki wyjtek zgasza. Wymaga to zastosowania instrukcji
deklaruje si za pomoc sowa kluczowego LQWHUIDFH. SRODLPHWRG\NODV\ WKURZV w oglnej postaci:
Interfejs moe by publiczny, jeli jest zdefiniowany w pliku   Hierarchia wyjtkw VSHF\ILNDWRUBGRVWSX>VWDWLF@>ILQDO@
o takiej samej nazwie jak nazwa interfejsu, lub pakietowy ` W\SB]ZUDFDQ\QD]ZDBPHWRG\ DUJXPHQW\
Jeli wic przykadowa klasa 6KDSH ma implementowa Kady wyjtek jest obiektem pewnej klasy. Klasy podlegaj WKURZV.ODVD:\MWNX.ODVD:\MWNX
(dostpny jedynie dla klas wchodzcych w skad danego pa- z kolei reguom dziedziczenia, zgodnie z ktrymi powstaje .ODVD:\MWNX1
przedstawiony wyej interfejs 'UDZDEOH, powinna mie
kietu). Schematyczna konstrukcja interfejsu jest nastpujca: posta: hierarchia klas. Wszystkie typowe wyjtki, ktre mona stan- ^
>SXEOLF@LQWHUIDFHQD]ZDBLQWHUIHMVX^ SXEOLFFODVV6KDSHLPSOHPHQWV'UDZDEOH^ dardowo przechwytywa w aplikacjach za pomoc bloku WUHPHWRG\
W\SB]ZUDFDQ\QD]ZDBPHWRG\ DUJXPHQW\  SXEOLFYRLGGUDZ ^ WU\FDWFK, dziedzicz (bezporednio lub porednio) `
W\SB]ZUDFDQ\QD]ZDBPHWRG\ DUJXPHQW\   ZQWU]HPHWRG\GUDZ  z klasy ([FHSWLRQ, dziedziczcej z klas 7KURZDEOH Przykad:
 GDOV]HPHWRG\LQWHUIHMVX  ` oraz 2EMHFW. Wynika z tego wana waciwo: jeeli dana SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@
W\SB]ZUDFDQ\QD]ZDBPHWRG\1 DUJXPHQW\  ` instrukcja moe wygenerowa wyjtek typu X, to mona za- WKURZV([FHSWLRQ
` wsze przechwyci wyjtek oglniejszy, czyli wyjtek, ktrego ^
Przykadowy interfejs o nazwie 'UDZDEOH zawierajcy Pola interfejsu typem bdzie jedna z klas nadrzdnych w stosunku do X. WKURZQHZ([FHSWLRQ 
`
deklaracj jednej tylko metody o nazwie GUDZ bdzie mia Pola interfejsu s jednoczenie publiczne, statyczne i finalne
Przechwytywanie wielu wyjtkw
trzeba im przypisa wartoci ju w momencie ich deklara- Jeeli zgaszany wyjtek ma otrzyma wasny komunikat,
posta:
cji. Deklaracja pola interfejsu nie rni si od deklaracji pola W jednym bloku WU\FDWFK mona przechwytywa naley przekaza go jako argument konstruktora klasy
SXEOLFLQWHUIDFH'UDZDEOH^ wiele wyjtkw. Konstrukcja taka zawiera wtedy jeden blok ([FHSWLRQ:
SXEOLFYRLGGUDZ  klasy. Zgodnie z konwencj przyjmuje si, e nazwy takich
pl pisze si wielkimi literami, a poszczeglne czony nazwy WU\ i wiele blokw FDWFK: WKURZQHZ([FHSWLRQ NRPXQLNDW 
` WU\^ lub:
oddziela si znakiem podkrelenia, np.:
SXEOLFLQWHUIDFH1RZ\,QWHUIHMV^ LQVWUXNFMHPRJFHVSRZRGRZD ([FHSWLRQH[FHSWLRQ QHZ
Implementowanie interfejsu Z\MWHN ([FHSWLRQ NRPXQLNDW 
LQW32/(B7<38B,17 
To, e klasa ma implementowa dany interfejs, zaznacza si, GRXEOH32/(B7<38B'28%/(  ` WKURZH[FHSWLRQ
wykorzystujc sowo kluczowe LPSOHPHQWV; schema- 2EMHFW32/(B7<38B2%-(&7 QHZ2EMHFW  FDWFK .ODVD:\MWNXLGHQW\ILNDWRU
tycznie:
S
`
:\MWNX ^ Ponowne zgaszanie wyjtkw
REVXJDZ\MWNX Raz przechwycony wyjtek mona zgosi ponownie
` (wyrzuci), wykorzystujc instrukcj WKURZ:
FDWFK .ODVD:\MWNXLGHQW\ILNDWRU WU\^
:\MWNX ^
TYPY UOGLNIONE REVXJDZ\MWNX
LQVWUXNFMHPRJFHVSRZRGRZD
Z\MWHN
` `
Uoglnianie w klasach Przykad: 
S

FDWFK W\S:\MWNXLGHQW\ILNDWRU:\MWNX ^
2SDNRZDQLH,QWHJHU!RS QHZ GDOV]HEORNLFDWFK LQVWUXNFMHREVXJXMFHV\WXDFM
Jeli w klasie ma by uyty typ uoglniony (z ang. generic 
type), naley to zaznaczy w jej definicji za pomoc nawiasu 2SDNRZDQLH,QWHJHU!  Z\MWNRZ
2SDNRZDQLH,QWHJHU6WULQJ!RS QHZ FDWFK .ODVD:\MWNX1LGHQW\ILNDWRU WKURZLQGHQW\ILNDWRU:\MWNX
ktowego umieszczonego za nazw klasy. W nawiasie trzeba :\MWNX1 ^
umieci identyfikatory typw, ktre zostan zastosowane, 2SDNRZDQLH,QWHJHU6WULQJ!  `
REVXJDZ\MWNXQ
oddzielajc je od siebie znakami przecinka; schematycznie: Po takich definicjach moliwe bd m.in. nastpujce przy- `
Przykad:
>SXEOLF@FODVVQD]ZDBNODV\LGLG pisania: Po wygenerowaniu wyjtku maszyna wirtualna sprawdza, SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@
LG1! RSYDO  czy jego typem jest .ODVD:\MWNX jeli tak, to wy- ^
^ RSYDO QHZ,QWHJHU   konywane s instrukcje obsugi tego wyjtku i blok WU\ WU\^
WUHNODV\ RSYDO  LQWOLF]ED 
FDWFK jest opuszczany. Jeeli jednak typem wyjtku nie jest
` RSYDO DEF[\] `
.ODVD:\MWNX, wtedy sprawdza si, czy jest on typu FDWFK $ULWKPHWLF([FHSWLRQH ^
Kady z identyfikatorw moe by nastpnie uyty we .ODVD:\MWNX itd.
wntrzu klasy jako okrelenie konkretnego typu danych. Uoglnianie metod 6\VWHPRXWSULQWOQ 7XZ\MWHN
Przy przechwytywaniu wielu wyjtkw w jednym bloku nale- ]RVWDSU]HFKZ\FRQ\ 
Zwyczajowo stosuje si identyfikatory jednoliterowe (rozpo- Uoglnianie metod jest niezalene od uoglnie klas, wic y pamita o ich hierarchii. Oglna zasada jest taka: nie ma
czynajc od litery T), jednak nie jest to ograniczenie formalne SRQRZQH]JRV]HQLHZ\MWNX
w klasie uoglnionej mog si znajdowa nieuoglnione znaczenia kolejno, jeeli wszystkie wyjtki s na jednym WKURZH
(identyfikator typu moe by wieloznakowy). Przykad klasy metody, a uoglnione metody mog si znajdowa w zwy- poziomie hierarchii. Jeli jednak przechwytywane s wyjtki `
przechowujcej jedn warto dowolnego typu: kych klasach. Jeli metoda ma operowa na argumencie z rnych poziomw, najpierw musz to by wyjtki bardziej `
SXEOLFFODVV2SDNRZDQLH7!^ typu oglnego, to specyfikacj tego typu naley umieci szczegowe, czyli stojce niej w hierarchii, a dopiero po
SXEOLF7YDO przed typem zwracanym przez metod; oglnie: nich wyjtki bardziej oglne, czyli stojce wyej w hierarchii. Tworzenie wyjtkw
` Przykad:
>PRG\ILNDWRUBGRVWSX@LGLGLG1! W Javie mona tworzy wasne klasy wyjtkw. Naley napisa
Przykad klasy przechowujcej dwie wartoci dwch do- W\SB]ZUDFDQ\QD]ZDBPHWRG\ DUJXPHQW\ SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ klas pochodn, dziedziczc porednio lub bezporednio
wolnych typw: ^ ^ z klasy 7KURZDEOH. W praktyce wyjtki najczciej s wy-
SXEOLFFODVV2SDNRZDQLH79!^ WUHPHWRG\ WU\^ prowadzane z klasy ([FHSWLRQ i klas od niej pochodnych:
SXEOLF7YDO ` LQWOLF]ED  SXEOLFFODVVQD]ZDBNODV\H[WHQGV([FHSWLRQ
SXEOLF9YDO Przykad: ` ^
` FDWFK $ULWKPHWLF([FHSWLRQH ^
SXEOLFFODVV0DLQ 6\VWHPRXWSULQWOQ H  WUHNODV\
Przy deklaracji zmiennych klasy korzystajcej z typw uogl- ^ ` `
nionych naley poda w nawiasie ktowym okrelenia kon- SXEOLFVWDWLF8!YRLGVKRZ 8YDO FDWFK 5XQWLPH([FHSWLRQH ^ Przykad (nowy wyjtek *HQHUDO([FHSWLRQ):
kretnych typw; schematycznie: ^ 6\VWHPRXWSULQWOQ H  SXEOLFFODVV*HQHUDO([FHSWLRQH[WHQGV
QD]ZDBNODV\LGLGLG1!QD]ZDB 6\VWHPRXWSULQWOQ YDOWR6WULQJ  ` ([FHSWLRQ
]PLHQQHM ` FDWFK ([FHSWLRQH ^ ^
Przykad: 6\VWHPRXWSULQWOQ H  `
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@
2SDNRZDQLH,QWHJHU!RS `
^ `
Zgoszenie wyjtku *HQHUDO([FHSWLRQ:
2SDNRZDQLH,QWHJHU6WULQJ!RS VKRZ QHZ2EMHFW  SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@
Analogicznie naley postpi przy tworzeniu obiektw; VKRZ QHZ,QWHJHU   Zagniedanie blokw try...catch WKURZV*HQHUDO([FHSWLRQ
schematycznie: ` ^
QHZQD]ZDBNODV\LGLGLG1!  S
` Bloki WU\FDWFK mona zagnieda. W jednym bloku WKURZQHZ*HQHUDO([FHSWLRQ 
przechwytujcym wyjtek X moe istnie drugi blok, ktry `
bdzie przechwytywa wyjtek Y. Schematycznie taka kon-
strukcja ma posta: Sekcja finally
WU\^
PAKIETY LQVWUXNFMHPRJFHVSRZRGRZD
Do bloku WU\ moemy doczy sekcj ILQDOO\, ktra
bdzie wykonywana zawsze, niezalenie od tego, co bdzie
Z\MWHN dziao si w bloku WU\; schematycznie:
S

Tworzenie pakietw Aby skorzysta z klasy zawartej w pakiecie w innej klasie, na- WU\^
ley uy dyrektywy LPSRUW w postaci: WU\^
Klasy w Javie grupowane s w jednostki nazywane pakieta- LQVWUXNFMHPRJFHVSRZRGRZD LQVWUXNFMHPRJFHVSRZRGRZDZ\MWHN
mi. Pakiet to inaczej biblioteka, zestaw powizanych tema- LPSRUWQD]ZDBSDNLHWXQD]ZDBNODV\ Z\MWHN `
tycznie klas. Do tworzenia pakietw suy sowo kluczowe Dyrektywa LPSRUW musi znajdowa si na pocztku pliku. ` FDWFK ^
Aby zaimportowa wszystkie klasy z danego pakietu, dyrek- FDWFK 7\S:\MWNXLGHQW\ILNDWRU LQVWUXNFMHVHNFMLFDWFK
SDFNDJH, po ktrym nastpuje nazwa pakietu, zakoczona :\MWNX ^
znakiem rednika; schematycznie: tywa LPSRUW powinna mie posta: `
LPSRUWQD]ZDBSDNLHWX  REVXJDZ\MWNX ILQDOO\^
SDFNDJHQD]ZDBSDNLHWX `
Przykad: LQVWUXNFMHVHNFMLILQDOO\
` `
Instrukcja ta musi znajdowa si na pocztku pliku, przed ni LPSRUWMDYDLR  FDWFK 7\S:\MWNXLGHQW\ILNDWRU
nie moe by adnych innych instrukcji. Przed SDFNDJH Sekcj ILQDOO\ mona stosowa w przypadku dowolnych
:\MWNX ^
mog wystpowa jedynie komentarze: Nazwy pakietw REVXJDZ\MWNX
instrukcji, nie ma te koniecznoci przechwytywania wyjt-
Nazwy pakietw powinny by pisane w caoci maymi lite- ` ku. Stosowana jest wtedy konstrukcja WU\ILQDOO\
SDNLHWLNODVDSDNLHWRZD
rami, a jeli pakiet ma by udostpniony publicznie, naley Przykad: w postaci:
SDFNDJHQD]ZDBSDNLHWX
poprzedzi go odwrcon nazw domeny twrcy pakietu. WU\^
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ LQVWUXNFMH
FODVVQD]ZDBNODV\ Nie jest to obligatoryjne, ale pozwala na utworzenie, z duym ^ `
^ prawdopodobiestwem, nazwy unikatowej w skali globu. 3XQNWSXQNW QXOO ILQDOO\^
 Jeeli np. domen autora jest marcinlis.com i ma powsta LQWOLF]ED LQVWUXNFMH
pakiet o nazwie grafika, jego pena nazwa bdzie brzmie: WU\^ `
WUHNODV\
com.marcinlis.grafika. Wszystkie klasy tego pakietu bd WU\^
  OLF]ED 
Kod z bloku ILQDOO\ zostanie wykonany zawsze, niezale-
S musiay zosta umieszczone w strukturze katalogw odpo- S nie od tego, jakie instrukcje znajduj si w bloku WU\.
` wiadajcych tej nazwie. `

cig dalszy na stronie 5


4
Ebookpoint.pl KOPIA DLA: Kornel Krawczyk corni7@o2.pl
Tablice informatyczne. Java. Wydanie III
WSPPRACA Z SYSTEMEM Deklaracja Opis
3ULQW6WUHDPDSSHQG FKDUF Dodaje znak do strumienia
Standardowy strumie wejciowy 3ULQW6WUHDPDSSHQG &KDU6HTXHQFHFVT Dodaje do strumienia sekwencj znakw
Standardowy strumie wejciowy jest reprezentowany przez obiekt 6\VWHPLQ, czyli obiekt LQ zawarty w klasie 6\VWHP 3ULQW6WUHDPDSSHQG &KDU6HTXHQFHFVT Dodaje do strumienia cz sekwencji znakw wyznaczan
(statyczne i finalne pole klasy). Jest to obiekt typu ,QSXW6WUHDP (klasy reprezentujcej strumienie wejciowe). Metody udo- LQWVWDUWLQWHQG przez indeksy VWDUW i HQG
stpniane przez t klas zostay zebrane w poniszej tabeli. ERROHDQFKHFN(UURU Oprnia bufor oraz sprawdza, czy nie wystpi bd
Typ zwracany Metoda Opis SURWHFWHGYRLGFOHDU(UURU Zeruje status bdu
LQW DYDLODEOH Zwraca liczb bajtw, ktre mog by odczytane ze strumienia YRLGFORVH Zamyka strumie
YRLG FORVH Zamyka strumie i zwalnia zwizane z nim zasoby YRLGIOXVK Powoduje oprnienie bufora
YRLG PDUN LQWUHDGOLPLW Zaznacza biec pozycj w strumieniu 3ULQW6WUHDPIRUPDW /RFDOHO6WULQJ Zapisuje w strumieniu dane okrelone przez argumenty DUJV
ERROHDQ PDUN6XSSRUWHG Sprawdza, czy strumie moe obsugiwa metody PDUN i UHVHW IRUPDW2EMHFWDUJV w formacie zdefiniowanym przez IRUPDW, zgodnie z ustawienia-
mi narodowymi wskazanymi przez O
DEVWUDFWLQW UHDG Odczytuje kolejny bajt ze strumienia 3ULQW6WUHDPIRUPDW 6WULQJIRUPDW Zapisuje w strumieniu dane okrelone przez argumenty DUJV
LQW UHDG E\WH>@E Odczytuje ze strumienia liczb bajtw nie wiksz ni rozmiar tabli- 2EMHFWDUJV w formacie okrelonym przez IRUPDW
cy E. Zwraca faktycznie odczytan liczb bajtw. YRLGSULQW ERROHDQE Wywietla warto typu ERROHDQ
UHDG E\WH>@E Odczytuje ze strumienia liczb bajtw nie wiksz ni wskazywana YRLGSULQW FKDUF Wywietla znak
LQW przez OHQ, i zapisuje je w tablicy E, poczwszy od komrki wska-
LQWRIILQWOHQ YRLGSULQW FKDU>@V Wywietla tablic znakw
zywanej przez RII. Zwraca faktycznie przeczytan liczb bajtw.
Wraca do pozycji strumienia wskazywanej przez wywoanie metody YRLGSULQW GRXEOHG Wywietla warto typu GRXEOH
YRLG UHVHW YRLGSULQW IORDWI
PDUN Wywietla warto typu IORDW
Pomija w strumieniu liczb bajtw wskazywanych przez Q. Zwraca YRLGSULQW LQWL Wywietla warto typu LQW
ORQJ VNLS ORQJQ
faktycznie pominit liczb bajtw. YRLGSULQW ORQJO Wywietla warto typu ORQJ
Wczytywanie tekstu za pomoc klasy buforowej YRLGSULQW 2EMHFWREM Wywietla cig znakw uzyskany przez wywoanie metody
WR6WULQJ obiektu REM
Naley skorzysta z metody UHDG/LQH klasy %XIIHUHG5HDGHU. Aby utworzy obiekt tej klasy powizany ze standardowym
YRLGSULQW 6WULQJV Wywietla cig znakw V
strumieniem wejciowym 6\VWHPLQ, trzeba dodatkowo utworzy obiekt poredniczcy klasy ,QSXW6WUHDP5HDGHU,
stosujc konstrukcj: 3ULQW6WUHDPSULQWI /RFDOHO6WULQJ Zapisuje w strumieniu dane okrelone przez argumenty DUJV
%XIIHUHG5HDGHUEU,Q QHZ%XIIHUHG5HDGHU IRUPDW2EMHFWDUJV w formacie zdefiniowanym przez IRUPDW, zgodnie z ustawienia-
QHZ,QSXW6WUHDP5HDGHU 6\VWHPLQ mi narodowymi wskazanymi przez O
  3ULQW6WUHDPSULQWI 6WULQJIRUPDW Zapisuje w strumieniu dane okrelone przez argumenty DUJV
Przykad: 2EMHFWDUJV w formacie okrelonym przez IRUPDW
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ YRLGSULQWOQ Wywietla znak koca linii (powoduje przejcie do nowej linii)
^
%XIIHUHG5HDGHUEU,Q QHZ%XIIHUHG5HDGHU YRLGSULQWOQ ERROHDQE Wywietla warto typu ERROHDQ oraz znak koca linii
QHZ,QSXW6WUHDP5HDGHU 6\VWHPLQ YRLGSULQWOQ FKDUF Wywietla znak zapisany w F oraz znak koca linii
  YRLGSULQWOQ FKDU>@WDE Wywietla tablic znakw WDE oraz znak koca linii
6\VWHPRXWSULQWOQ :SURZDGZLHUV]WHNVWX]DNRF]RQ\]QDNLHP(QWHU 
WU\^ YRLGSULQWOQ GRXEOHG Wywietla warto typu GRXEOH oraz znak koca linii
6WULQJOLQH EU,QUHDG/LQH  YRLGSULQWOQ IORDWI Wywietla warto typu IORDW oraz znak koca linii
6\VWHPRXWSULQW :SURZDG]RQDOLQLDWROLQH  YRLGSULQWOQ LQWL Wywietla warto typu LQW oraz znak koca linii
`
FDWFK ,2([FHSWLRQH ^ YRLGSULQWOQ ORQJO Wywietla warto typu ORQJ oraz znak koca linii
6\VWHPRXWSULQWOQ %GSRGF]DVRGF]\WXVWUXPLHQLD  Wywietla cig znakw uzyskany przez wywoanie metody
` YRLGSULQWOQ 2EMHFWREM
WR6WULQJ obiektu REM oraz znak koca linii
`
YRLGSULQWOQ 6WULQJV Wywietla cig znakw V oraz znak koca linii
Wprowadzanie liczb SURWHFWHGYRLGVHW(UURU Ustawia strumie w stan bdu
Do wprowadzania wartoci liczbowych mona zastosowa klas 6WUHDP7RNHQL]HU, ktra dzieli strumie wejciowy na YRLGZULWH E\WH>@EXILQWRII Zapisuje do strumienia bajty z tablicy EXI, w liczbie wskazywa-
jednostki leksykalne, czyli tokeny. Ma ona pole o nazwie QYDO, ktre zawiera warto aktualnego tokena w postaci liczby typu LQWOHQ nej przez OHQ, poczynajc od komrki okrelonej przez RII
GRXEOH (o ile ten token jest liczb). Typ tokena mona rozpozna, odczytujc stan pola WW\SH, ktre moe przyjmowa na- YRLGZULWH LQWE Zapisuje bajt E do strumienia
stpujce wartoci:
 x 6
WUHDP7RNHQL]HU77B(2) osignity zosta koniec strumienia; System plikw
 x 6
WUHDP7RNHQL]HU77B(2/ osignity zosta koniec linii; Klasa File
 x 6
WUHDP7RNHQL]HU77B180%(5 token jest liczb;
Klasa )LOH pozwala na wykonywanie podstawowych operacji na plikach i katalogach, takich jak ich tworzenie i usuwanie,
 x 6
WUHDP7RNHQL]HU77B:25' token jest sowem. operacje na nazwach czy pobieranie parametrw (np. czasu utworzenia bd modyfikacji). Nie jest to jednak klasa, ktra umo-
Przykad: liwiaaby modyfikacj zawartoci pliku. Wybrane metody udostpniane przez klas )LOH zostay zebrane w poniszej tabeli.
LPSRUWMDYDLR 
Typ Nazwa metody Opis
SXEOLFFODVV0DLQ ERROHDQ FDQ([HFXWH Sprawdza, czy aplikacja moe uruchomi dany plik
^
SXEOLFVWDWLFYRLGPDLQ 6WULQJDUJV>@ ERROHDQ FDQ5HDG Sprawdza, czy aplikacja moe odczytywa dany plik
^ ERROHDQ FDQ:ULWH Sprawdza, czy aplikacja ma prawa zapisu do danego pliku
6WUHDP7RNHQL]HUVWU7RN QHZ6WUHDP7RNHQL]HU LQW FRPSDUH7R )LOHSDWKQDPH Porwnuje cieki dostpu do plikw
QHZ%XIIHUHG5HDGHU
QHZ,QSXW6WUHDP5HDGHU 6\VWHPLQ FUHDWH7HPS)LOH 6WULQJ Tworzy pusty plik tymczasowy. Nazwa tego pliku powstaje
 VWDWLF)LOH przy wykorzystaniu prefiksu i sufiksu przekazanych
SUHIL[6WULQJVXIIL[
  w parametrach.
 FUHDWH7HPS)LOH 6WULQJ Tworzy pusty plik tymczasowy o atrybutach wskazanych
6\VWHPRXWSULQW :SURZDGOLF]E  SUHIL[6WULQJVXIIL[ przez DWWUV. Argument GHOHWH2Q([LW wskazuje, czy
 VWDWLF)LOH
ERROHDQGHOHWH2Q([LW plik ma by automatycznie usunity po zakoczeniu pracy
WU\^ )LOH$WWULEXWH"!DWWUV maszyny wirtualnej. Metoda dostpna od JDK 1.7.
VWU7RNQH[W7RNHQ 
` FUHDWH7HPS)LOH 6WULQJ
VWDWLF)LOH SUHIL[6WULQJVXIIL[ Tworzy pusty plik tymczasowy w katalogu wskazywanym
FDWFK ,2([FHSWLRQH ^ przez argument GLUHFWRU\
6\VWHPRXWSULQW %GSRGF]DVRGF]\WXGDQ\FK]HVWUXPLHQLD  )LOHGLUHFWRU\
UHWXUQ ERROHDQ GHOHWH Usuwa plik lub katalog
` Zaznacza, e plik ma zosta usunity, kiedy maszyna
YRLG GHOHWH2Q([LW
wirtualna bdzie koczy prac
LI VWU7RNWW\SH 6WUHDP7RNHQL]HU77B180%(5 ^
6\VWHPRXWSULQW 7RQLHMHVWSUDZLGRZDOLF]ED  ERROHDQ H[LVWV Sprawdza istnienie pliku lub katalogu
UHWXUQ Zwraca obiekt zawierajcy bezwzgldn nazw pliku
)LOH JHW$EVROXWH)LOH
` lub katalogu (wraz z pen ciek dostpu)
6WULQJ JHW$EVROXWH3DWK Zwraca bezwzgldn ciek dostpu do pliku lub katalogu
GRXEOHOLF]ED VWU7RNQYDO
6\VWHPRXWSULQW :SURZDG]RQDOLF]EDWROLF]ED  )LOH JHW&DQRQLFDO)LOH Zwraca obiekt zawierajcy kanoniczn posta nazwy pliku
` lub katalogu (wraz z pen ciek dostpu)
` Zwraca kanoniczn posta cieki dostpu do pliku
6WULQJ JHW&DQRQLFDO3DWK
lub katalogu
S

Klasa Scanner Przykad:


LPSRUWMDYDXWLO  ORQJ JHW)UHH6SDFH Zwraca ilo wolnego miejsca na partycji wskazywanej
Poczwszy od wersji Javy 5.0 (1.5), do przetwarzania danych przez biecy obiekt typu )LOH
wejciowych mona uywa klasy 6FDQQHU. Zawiera ona
SXEOLFFODVV0DLQ^ 6WULQJ JHW1DPH Zwraca nazw pliku (bez cieki dostpu)
konstruktory, ktre mog przyjmowa obiekty klas: )LOH,
,QSXW5HDGHU i 6WULQJ, a take obiekty implementujce SXEOLFVWDWLFYRLGPDLQ 6WULQJ 6WULQJ JHW3DUHQW Zwraca nazw katalogu nadrzdnego
interfejsy 5HDGDEOH lub 5HDGDEOH%\WH&KDQQHO. Jest DUJV>@ ^ )LOH JHW3DUHQW)LOH Zwraca obiekt wskazujcy na katalog nadrzdny
to wic zestaw pozwalajcy na obsug bardzo wielu formatw 6FDQQHUVFDQQHU QHZ
6FDQQHU 6\VWHPLQ  6WULQJ JHW3DWK Zwraca nazw biecego katalogu lub pliku w postaci
wejciowych. Metod klasy 6FDQQHU jest bardzo wiele, a najbar- obiektu typu 6WULQJ
dziej przydatne s te z rodziny QH[W i KDV1H[W, konstruowa-
ne na bardzo prostych zasadach, ktre schematycznie mona 6\VWHPRXWSULQW :SURZDGZDUWR ORQJ JHW7RWDO6SDFH Zwraca cakowity rozmiar partycji wskazywanej przez
przedstawi jako: FDNRZLW  biecy obiekt
KDV1H[W1D]ZD7\SX3URVWHJR ORQJ JHW8VDEOH6SDFH Zwraca ilo miejsca dostpnego dla maszyny wirtualnej
oraz: ZKLOH VFDQQHUKDV1H[W,QW ^ na partycji wskazywanej przez biecy obiekt
QH[W1D]ZD7\SX3URVWHJR 6\VWHPRXWSULQW 7RQLHMHVW LQW KDVK&RGH Oblicza warto funkcji skrtu dla danej cieki dostpu
Istniej wic metody: KDV1H[W, KDV1H[W,QW, KDV1H[W ZDUWRFDNRZLWD 
6\VWHPRXWSULQWOQ VFDQQHU ERROHDQ LV$EVROXWH Sprawdza, czy dana cieka dostpu jest ciek bez-
'RXEOH, KDV1H[W%\WH itd. Wszystkie one zwracaj warto
QH[W  wzgldn
WUXH, jeli w powizanym strumieniu danych kolejn jednostk
leksykaln jest warto danego typu prostego, natomiast pusta 6\VWHPRXWSULQW :SURZDG ERROHDQ LV'LUHFWRU\ Sprawdza, czy cieka dostpu wskazuje na katalog
metoda KDV1H[W zwraca warto WUXH, jeeli w strumieniu ZDUWRFDNRZLW  ERROHDQ LV)LOH Sprawdza, czy cieka dostpu wskazuje na plik
istnieje jakakolwiek kolejna jednostka leksykalna. Dodatkowo `
LQWYDOXH VFDQQHUQH[W,QW  ERROHDQ LV+LGGHQ Sprawdza, czy cieka dostpu wskazuje na ukryty katalog
istnieje metoda KDV1H[W/LQH, ktra okrela, czy w strumie- lub plik
niu znajduje si wiersz tekstu. LQWUHVXOW YDOXH 
6\VWHPRXWSULQWOQ YDOXH  ORQJ ODVW0RGLILHG Zwraca czas ostatniej modyfikacji pliku lub katalogu
Metody z rodziny QH[W, a wic: QH[W,QW, QH[W'RXEOH,
QH[W%\WH itd., zwracaj kolejn jednostk leksykaln w postaci UHVXOW  ORQJ OHQJWK Zwraca wielko pliku w bajtach
wartoci danego typu prostego. Metoda QH[W zwraca z kolei to- ` Zwraca zawarto katalogu w postaci tablicy obiektw
S ` 6WULQJ>@ OLVW
ken w postaci cigu znakw, a QH[W/LQH cay wiersz tekstu. typu 6WULQJ
6WULQJ>@ OLVW )LOHQDPH)LOWHUILOWHU Zwraca list plikw i podkatalogw speniajcych kryteria
Standardowy strumie wyjciowy wskazane przez ILOWHU
)LOH>@ OLVW)LOHV Zwraca zawarto katalogu w postaci obiektw typu
Dane mona wyprowadza (np. na ekran konsoli) za pomoc instrukcji 6\VWHPRXWSULQWOQ lub 6\VWHPRXW )LOH
SULQW, czyli przez wywoanie metody SULQWOQ lub SULQW obiektu 6\VWHPRXW. Jest to obiekt klasy 3ULQW6WUHDP.
Metody udostpniane przez t klas zostay zebrane w tabeli u gry po prawej. )LOH>@ OLVW)LOHV )LOH)LOWHUILOWHU Zwraca zawarto katalogu speniajc kryteria wskazane
przez ILOWHU w postaci obiektw typu )LOH

5
Ebookpoint.pl KOPIA DLA: Kornel Krawczyk corni7@o2.pl
Tablice informatyczne. Java. Wydanie III
   Zwraca zawarto katalogu speniajc kryteria wskazane 
  

  przez   w postaci obiektw typu 


 
  
   Wywietla wszystkie korzenie systemu plikw 
    

  Tworzy nowy katalog      
Tworzy nowy katalog z uwzgldnieniem nieistniejcych  
  
katalogw nadrzdnych  
   Zmienia nazw na wskazywan przez argument   

   Ustawia prawo wykonywalnoci dla danego pliku lub  

     


  katalogu

     Ustawia dat ostatniej modyfikacji pliku lub katalogu 
  
 Ustawia prawo do odczytu dla danego pliku lub katalogu   


    Ustawia atrybut  pliku lub katalogu       

   
 Ustawia prawo do zapisu dla danego pliku lub katalogu
   
   Zwraca ciek dostpu w postaci obiektu klasy  Zapis do pliku
  Przeksztaca ciek dostpu na obiekt URI Przykad:
 
Klasa RandomAccessFile
Klasa  pozwala na wykonywanie wszelkich operacji na plikach o dostpnie swobodnym, a take na 
odczytywanie i zapisywanie danych z pliku i do niego oraz przemieszczanie si po pliku. Jest dostpna we wszystkich JDK,

poczwszy od wersji 1.0. Wybrane metody udostpniane przez  zostay zebrane w poniszej tabeli.    


Typ Metoda Opis  

  Zamyka strumie oraz zwalnia wszystkie zwizane z nim zasoby       
 
   Zwraca powizany z plikiem unikatowy obiekt typu 

    Zwraca deskryptor pliku powizanego ze strumieniem  
    
    Zwraca aktualn pozycj w pliku 
   Zwraca dugo pliku
  Odczytuje jeden bajt danych z pliku 
Odczytuje z pliku liczb bajtw, nie wiksz ni rozmiar tablicy  

   , i umieszcza je w tej tablicy. Zwraca faktycznie odczytan   
liczb bajtw. 
Odczytuje z pliku liczb bajtw, nie wiksz ni wskazywana    

  przez , i zapisuje je w tablicy , poczwszy od komrki       
  
  wskazywanej przez . Zwraca faktycznie przeczytan 
liczb bajtw.
  Odczytuje warto typu   
   Odczytuje warto typu   

  Odczytuje warto typu    

  Odczytuje warto typu  


 
   Odczytuje warto typu  
    Odczytuje liczb bajtw rwn wielkoci tablicy . Zwraca    
liczb faktycznie odczytanych bajtw. 

   Odczytuje liczb bajtw, wskazywan przez , i zapisuje je 
 w tablicy , poczwszy od komrki wskazywanej przez .
     

Zwraca faktycznie przeczytan liczb bajtw.       
   Odczytuje warto typu   
  
Odczytuje wiersz tekstu 
  Odczytuje warto typu  
   Odczytuje warto typu 
Strumieniowe operacje na plikach


   Odczytuje 8-bitow warto bez znaku Pierwsza z nich powinna by wykorzystywana do zapisu plikw
   Odczyt danych tekstowych, druga do zapisu strumieni binarnych. Obie klasy
Odczytuje 16-bitow warto bez znaku maj po pi przecionych konstruktorw. Trzy z nich s jed-
  Odczytuje tekst w kodowaniu UTF-8 Podstawowe klasy odczytujce dane z plikw to: noargumentowe i mog przyjmowa nastpujce argumenty:
  Zmienia wskanik pozycji w pliku na    
,   
cig znakw zawierajcy nazw pliku,
  
 .   
obiekt klasy  ,
  
 Ustawia rozmiar pliku na    Pierwsza z nich powinna by stosowana podczas korzystania
    
obiekt klasy .
ze strumienia znakowego, czyli dla plikw tekstowych, druga
    Pomija  bajtw podczas korzystania ze strumienia binarnego, czyli dla pli- Pozostae konstruktory s dwuargumentowe. Pierwszy przyj-
    Zapisuje tablic bajtw do pliku kw binarnych. Obie klasy maj po trzy przecione konstruk- muje cig znakw oraz warto , drugi obiekt
klasy  i warto . W obu przypadkach drugi
    Zapisuje do pliku  bajtw z tablicy , poczwszy od tory, ktrych argumentami mog by:
argument ustawiony na  oznacza, e dane maj by do-

  komrki wskazywanej przez    
cig znakw zawierajcy nazw pliku, pisywane na kocu pliku, a ustawiony na  e dane
    Zapisuje bajt do pliku   
obiekt klasy  , maj by zapisywane od pocztku pliku (nadpisujc jego wcze-
   Zapisuje do pliku warto  w postaci jednego bajta   
obiekt klasy . niejsz zawarto).
     Zapisuje bajt do pliku Metody odczytujce dane klasy : Wszystkie konstruktory generuj wyjtek
  , jeli:
     Zapisuje do pliku cig znakw, wskazywany przez , w postaci Typ Metoda Opis   
podana nazwa wskazuje na katalog, a nie na plik;
cigu bajtw   Odczytuje pojedynczy znak   
podany plik nie istnieje i nie mona go rwnie utworzy;
    Zapisuje do pliku warto typu  w postaci dwch bajtw   
nie mona z jakiego powodu otworzy istniejcego pliku.
Odczytuje liczb znakw, nie
    Zapisuje do pliku cig wskazywany przez  w postaci cigu wiksz ni wskazywana przez Metody zapisujce dane klasy  :
znakw 
 
 , i zapisuje je w tablicy
Konwertuje warto na typ , korzystajc z metody  , poczwszy od komrki Typ zwracany Metoda Opis
 
     klasy , i tak powsta    wskazywanej przez  . Zapisuje do stru-
warto zapisuje do pliku Zwraca faktycznie przeczytan   mienia  znakw
Konwertuje warto na typ  , korzystajc z metody liczb znakw.   z tablicy ,

         klasy  , i tak powsta warto   poczwszy od ko-
Metody odczytujce dane klasy  :  mrki wskazywanej
zapisuje do pliku
Typ Metoda Opis przez 
     Zapisuje do pliku warto typu  w postaci czterech bajtw
   Zapisuje do pliku warto typu  w postaci omiu bajtw   Odczytuje jeden bajt danych     Zapisuje do stru-
mienia znak 
     Zapisuje do pliku warto typu  w postaci dwch Odczytuje liczb bajtw, nie Zapisuje do
bajtw wiksz od dugoci tablicy , strumienia 
Zapisuje do pliku cig znakw, wskazywany przez ,    i zapisuje je w tablicy . Zwraca   
       
znakw z cigu
w kodowaniu UTF-8 faktycznie odczytan liczb   , poczwszy
bajtw.  
 od znaku o indeksie
Odczyt pliku wskazywanym
Przykad: Odczytuje liczb bajtw, nie
wiksz ni wskazywana przez przez 
    , i zapisuje je w tablicy Metody zapisujce dane klasy   :
   , poczwszy od komrki
   Typ zwracany Metoda Opis

wskazywanej przez .
    Zwraca faktycznie przeczytan Zapisuje tablic

liczb bajtw.     bajtw do
 
Metod tych mona uywa bezporednio lub te wykorzy- strumienia
       sta obiekty klas  i   Zapisuje do
  jako argumenty dla konstruktorw klas dajcych wik- strumienia 
    bajtw z tablicy
sz funkcjonalno, np.   lub
.     , poczwszy
   od komrki
Zapis danych wskazywanej
 

     


Podstawowe klasy zapisujce dane z plikw to: przez 
    
 , Zapisuje bajt
  
  .     
 do strumienia

Wydawnictwo Helion
ul. Kociuszki 1c, 44-100 Gliwice Pole ksik na Facebook.com Ksigarnia internetowa
tel. 32 230 98 63
e-mail: helion@helion.pl Kup w wersji papierowej Lubi to! Nasza spoeczno
http://helion.pl
Oce ksik
Informatyka w najlepszym wydaniu ISBN: 978-83-246-4707-1
Ebookpoint.pl KOPIA DLA: Kornel Krawczyk corni7@o2.pl
Ebookpoint.pl KOPIA DLA: Kornel Krawczyk corni7@o2.pl

You might also like