Učebnice jazyka JAVA (Pavel Herout), Kopp, 2000 České  Budějovice, 350  str., 199 Kč, 69 Kč disketa

 

     Další  knihu autora  Pavla Herouta  jsem četl  s velkým očekáváním. Přečetl jsem od něj  totiž učebnici jazyka     C, která byla vynikající. Musím říct, že ani nová kniha mě  nezklamala. Kniha  popisuje verzi  jazyka Java  JDK 1.2.2.

           Text  knihy  je   rozdělen  do  dvaceti  kapitol, seznamu  literatury a  rejstříku. Za  každou kapitolou,  kde  je  co  procvičovat,  jsou  zařazena  cvičení  pro  čtenáře.  Dále  je  na  konci  kapitoly  uveden přehled     běžných chyb a dobré rady. Autor v textu poněkud  nestandardně  používá  odkaz  na  knihu, která  ještě nevyšla. Na str. 37, 147, 148 je odkaz na  knihu  UJJ2. Pokud  čtenář nepřečetl  dost pozorně úvod knihy, bude trochu dezorientován, stejně jako z počátku já.  Na  str.41  se  v  textu  hovoří  o  metodě  třídy isInfinity() a ve výpisu programu je isInfinite().

        Důraz je v knize kladen na odlišnosti proti jazyku C,  jako je neexistence globálních  proměnných,  příkazu  GOTO, operátoru čárka, možnost  deklarovat metodu až po jejím  použitím atd.  Čtenář je  upozorněn na nemožnost     použití  klíčového slova  void u  metody bez parametrů.  Nechybí informace o tom, že Java poskytuje pouze jeden způsob předávání  parametrů (call-by-value ),  tedy to,     že  parametry  mohou  být  jen  čteny.  Změna parametrů     uvnitř metody  se tedy po opuštění  metody ztrácí. Není     samozřejmě zapomenuto  ani na možnost  přetížení metod,  která není možná pouze změnou typu návratové hodnoty. Velká pozornost  je věnována polím,  třídám a objektům.  Zatímco  polím  je  pro  jednoduchost  jejich deklarací  a použití rezervováno jen sedm stran, třídám a objektům  je k dispozici  plných 26  stran. Čtenář  se zde dozví  o možnosti získat velikost pole pomocí členské proměnné  length  a  to, že  Java striktně za běhu programu kontroluje překročení obou  mezí pole. U dvourozměrných     polí je  pak upozorněno na fakt,  že počet sloupců pole  může být  u každého řádku jiná.  V 8. kapitole věnované  třídám a objektům  je důkladně  a fundovaně  objasněna  problematika tříd  a   objektů.  Je objasněn  pojem referenční  proměnné,  proměnné  třídy  (tj.  statické  proměnné)  a  proměnné  instance.  Rovněž  se  podrobně vysvětluje pojem statické metody a metody instance. Na mnoha příkladech je  ukázána problematika konstruktorů, implicitního parametru this a finalizeru, přetížení metod a konstruktorů,  rušení objektů použitím garbage collectoru. 10. kapitola rozšiřuje znalosti čtenáře o třídách a objektech  o modifikátorech  deklarace třídy  public,     abstract   a  final,  předávání skutečných  parametrů metodám. 11. kapitola se zabývá dědičností, konstruktory  implicitními i  neimplicitními, vytváření  identických  kopii  jedné  instance,  tedy  klonováním.

     Trochu  méně   srozumitelné  (alespoň  pro mne)  bylo objasnění mělké a hluboké kopie.  12.  kapitola  vysvětluje  problematiku vytváření  knihoven tříd, tedy balíků  (package). Mám  pocit,  že  si  čtenář-začátečník, kterému je konec konců kniha věnována, neudělá  z uvedených  příkladů názor,  k  čemu  slouží rozhraní a v  jakých situacích  použít  vnitřní  třídy.  Určitý náznak  použití   rozhraní je v poslední  kapitole.  Předposlední  část, věnovaná  systémovým akcím,  popisuje spolupráci programu s  okolím, tedy předávání parametrů     z příkazového  řádku,  standardní  vstupní  a  výstupní  proudy System.in,  System.out a System.err  a seznamuje s některými  metodami   ze  třídy  System,   jako  jsou   informace o čase či zjištění velikosti dostupné paměti.     Pro lepší  pochopení problematiky by  byl vhodný nějaký  podrobný  příklad, ukazující  použití  Javy  v  reálné  situaci, možná, že to bude v druhém díle. Příklady uvedené v  knize sice dobře ilustrují  vyloženou problematiku, ale  i sám autor uznává, že některé příklady jsou vyumělkované. Koncepci  postupně rozvíjeného příkladu použil autor v poslední     kapitole,  kde  ukazuje  použití  vláken. Určitým nedostatkem knihy je její knihařské provedení. Kniha se   mi  totiž  během  čtení  rozpadla. Předností je naopak bezchybná čeština autora a dobré uspořádání látky. Snad  by čtenáři uvítali  větší  rozsah knih. Nechme  se  překvapit, s čím přijde autor  ve druhém dílu, který by měla obsahovat popis grafického uživatelského rozhraní. První díl lze   považovat  za docela  zdařilý. 

dr.vasicek@atlas.cz

RNDr.Karel Vašíček, Družstevní 117,; 530 09 Pardubice, tel. 46-6401520, 6058489

Psáno pro Softwarové noviny 2/2002 str. 116

Naposledy změněno: 19. 12. 2012