Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Myslíme v jazyku Java

Chcete začít programovat v Linuxu? Kniha "Myslíme v jazyku Java" od Bruce Eckela, kterou vydala Grada již v roce 2000, je jednou z nejlepších učebnic svého druhu. Podíváme se jí na zoubek. K dispozici je také zdarma na webu (v angličtině).

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Operační systém Linux a jazyk Java se v poslední době staly jedním z hojně používaných řešení. Nedivme se, jedná se o levnou a výkonnou věc. Také proto se Javě tak věnujeme. Java je silný, objektově orientovaný jazyk se širokou komunitou, nabízející především vysokou produktivitu vývoje. Pokud tedy nehodláte psát operační systém, je Java právě pro vás. Navíc si myslím, že Java je nanejvýš vhodná pro výuku OOP. Potom můžete klidně přejít na C++, ale ujišťuji vás, že už to pravděpodobně neuděláte.

Kniha Thinking in Java od Bruce Eckela je podle mého názoru jasně nejlepším materiálem, který se dá zdarma z internetu stáhnout. Nakladatelství Grada Publishing připravilo překlad druhého vydání (v současnosti se na webu vyskytuje již třetí). Grada dílo rozdělila do dvou knih. Druhá část má podtitul Knihovna zkušeného programátora. Překlad vyhotovil Bogdan Kiszka, lektoroval mu Miroslav Virius.

Myslíme v jazyku Java jsem poprvé četl v originále, teprve v minulém roce jsem si koupil druhý díl, a když jsem nedávno objednával nějakou literaturu na Vltavě, rozhodl jsem se podpořit pana Eckela zakoupením také prvního dílu a připravit pro vás recenzi. Myslím totiž, že toto dílo za to stojí.

Díl první

V prvním dílu se nepředpokládá žádná znalost programování, stačí jen počítač (nejlepší řešení bude zřejmě OS Linux) a Java JDK (balík s překladačem a dokumentací). Hned ze začátku se dozvíte o základech OOP, první kapitola je totiž velice slušným úvodem do UML analýzy (doménová analýza, návrh komponent, diagramy tříd, sekvencí apod.) Pan Eckel šikovně již v těchto fázích vysvětluje, co je pro návrh v Javě nejlepší.

Po přečtění druhé a třetí kapitoly již budete umět objekty v Javě vytvářet, používat, naučíte se vytvářet metody a volat je. Dozvíte se, že vlastně všechno je v Javě objekt (tedy kromě primitivních datových typů, ale i ty mají samozřejmě své objektové protějšky) a naučíte se základní syntaxi pro řízení běhu programu s přihlédnutím k rozdílům oproti C++ (moc jich není). Všechny kapitoly na sebe navazují a každá je uzavřena sadou praktických cvičení, což umožňuje knihu používat i jako učebnici pro různé semináře.

Čtvrtá kapitola se zaobírá inicializací a úklidem objektů v Javě. Detailně je popsán systém konstruktorů a pečlivě je zde vysvětleno, proč v Javě chybí destruktory. Na příkladech jsou ukázány programátorské metody, které destruktory částečně nahrazují.

Pátá až sedmá kapitola pokračuje ve výkladu OOP. Zapouzdření, skládání, dědičnost a mnohotvárnost (polymorfismus) jsou témata, která musí bezpečně ovládat každý programátor, který chce využít sílu OOP. Dozvíte se nejen, jak všechno v Javě využít, ale díky přehledným příkladům se mnoho nových informací dozvíte i v obecné rovině.

Předposlední, tedy osmá kapitola je věnována rozhraním a vnitřním třídám. Tato kapitola je hodnotná zvláště pro ty, kteří již znají C++, protože jak rozhraní, tak vnitřní třídy C++ nepodporuje (protože je nepotřebuje). Problematice vnitřních tříd je věnována značná pozornost, protože se hojně používají při tvorbě GUI.

Poslední kapitola je ze všech nejzajímavější. Je věnována kontejnerům (pole, dynamická pole, hashe apod), které nabízí standardní knihovna Javy. Detailně jsou probrány všechny typy, které Java2 nabízí.

Díl druhý

Navazuje samozřejmě na díl první, ovšem dá se číst i jako samostatná kniha, což jsem si také sám vyzkoušel. První kapitola pojednává o výjimkách. Dozvíte se, jak je používat, na co je klíčové slovo finally, naučíte se vytvářet vlastní výjimky a také je vyvolávat, zachycovat a přeposílat.

V druhé kapitole se dozvíme něco o vstupu a výstupu. Kdo nikdy neprogramoval v Javě, bude to pro něho velice důležitá kapitola. Nepodává sice vyčerpávající výklad rozsáhlé I/O knihovny, ale pro začátek zcela postačí. Obsahuje také paragraf o komprimaci, převodu na tokeny a serializaci objektů. Za zmínku stojí, že se v třetím vydání (na webu) nalézá i stručný popis tříd New I/O (nio), které se objevilo ve verzi Java 1.4.

V další kapitole nazvané Tvorba oken a apletů jsou na příkladech popsány všechny základní vizuální komponenty Javy a jsou zde vysvětleny základy technologie JavaBeans. Kniha se plně věnuje Javě2 a knihovně Swing. Pokud máte zájem něco se dozvědět o starší knihovně Java1, můžete si stáhnout první vydání knihy.

Samostatné dvě kapitoly tvoří vlákna a distribuované systémy. Tato problematika je již pro zkušenější vývojáře. Jsou zde popsány techniky synchronizace, síťové programování, JDBC, RMI, CORBA a JINI. Dozvíte se také několik základních informací o servletech a JSP. Kapitola je jako všechny v obou dílech uzavřena několika domácími úkoly.

Druhý díl obsahuje ještě několik dalších menších kapitol a dodatků (RTTI, JNI atd.), nikde nechybějící odkazy na zdroje, kterých je pro Javu více než dost, a také praktické rady pro návrh aplikací.

Příklady ke knize se dají stáhnout z internetu a samy o sobě si zaslouží jedničku s hvězdičkou. Jsou totiž vytvořeny velice důkladně a pokrývají snad všechny základní problémy, které mohou u Javy nastat. Všechny příklady jsou pečlivě okomentovány a jsou pro ně připraveny sestavovací skripty pro Apache Ant. Chcete-li se dozvědět něco o nějaké třídě z API, stačí použít grep a ihned máte na talíři několik příkladů.

Oba díly jsou přeloženy (až na pár výjimek: …special bit of code in lieu…, …preserves growing temperature… aj.) téměř precizně. Celý překlad má určitou formu, kterou bohužel mnoho překladů počítačové literatury tak moc postrádá. Pan Kiszka se striktně drží již přeložených výrazů a nepřekládá ta slova, u kterých se to nehodí (reader – čtenář, apod).

Knihu bych doporučil zejména začátečníkům a hlavně těm, kteří by chtěli začít programovat (nejen v Linuxu). Java je totiž skvělým nástrojem, jak vytvářet přenositelné aplikace. Myslím také, že se podle tohoto díla dají pochopit základní pilíře objektově orientovaného programování. Pro pokročilé bych doporučil spíše tituly Java efektivně nebo Java programujeme profesionálně.

davame_internetu_obsah
       

Za oba tituly (celkem o 900 stranách) zaplatíte zhruba 800 korun českých. Objednat si je můžete ve vašem oblíbeném internetovém obchodu.

Link: Thinking in Java

Školení: Linux – Zálohování, Vysoká dostupnost, SNMP dohled

Na třídenním školení se naučíte nainstalovat a spravovat systém zálohování, replikace dat a vysoké dostupnosti dat. Dále také pracovat s RAID a LVM poli a nainstalovat a spravovat si vlastní dohledový systém.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,98

Přehled názorů

Ehm ehm
Yeti 31. 1. 2003 01:21
Nový
├ 
Re: Ehm ehm
Petr 31. 1. 2003 09:21
Nový
│
└ 
Re: Ehm ehm
Yeti 31. 1. 2003 10:42
Nový
│
 
├ 
Re: Ehm ehm
zoul 31. 1. 2003 10:48
Nový
│
 
│
└ 
Re: Ehm ehm
Yeti 31. 1. 2003 13:47
Nový
│
 
│
 
├ 
Re: Ehm ehm
Hugo 2. 2. 2003 21:20
Nový
│
 
│
 
│
└ 
Re: Ehm ehm
Yeti 3. 2. 2003 14:06
Nový
│
 
│
 
└ 
Re: Ehm ehm
Jenda 3. 2. 2003 22:19
Nový
│
 
└ 
Re: Ehm ehm
Loptosh 1. 2. 2003 20:56
Nový
├ 
Re: Ehm ehm
zoul 31. 1. 2003 10:41
Nový
│
└ 
Re: Ehm ehm
ph 31. 1. 2003 11:10
Nový
└ 
Re: Ehm ehm
zoul 31. 1. 2003 10:55
Nový
 
└ 
Re: Ehm ehm
Stanislav Kozina 31. 1. 2003 17:37
Nový
konstruktory
p@c 31. 1. 2003 09:13
Nový
└ 
Re: konstruktory
lzap 31. 1. 2003 19:39
Nový
Vnitrni tridy v C++
Petr 31. 1. 2003 09:24
Nový
└ 
Re: Vnitrni tridy v C++
lzap 31. 1. 2003 19:41
Nový
 
└ 
Re: Vnitrni tridy v C++
Petr 2. 2. 2003 12:59
Nový
 
 
└ 
Re: Vnitrni tridy v C++
lzap 3. 2. 2003 19:34
Nový
Ehm :)
XaroN 31. 1. 2003 10:39
Nový
├ 
Re: Ehm :)
zoul 31. 1. 2003 10:47
Nový
├ 
Re: Ehm :)
Yeti 31. 1. 2003 13:57
Nový
│
└ 
Re: Ehm :)
kato 31. 1. 2003 18:07
Nový
│
 
└ 
Re: Ehm :)
Yeti 31. 1. 2003 18:34
Nový
├ 
Re: Ehm :)
hisaak 31. 1. 2003 22:31
Nový
│
└ 
Re: Ehm :)
virgo 3. 2. 2003 02:39
Nový
└ 
Re: Ehm :)
Jan Koutnik 4. 2. 2003 22:49
Nový
Eckel...
kokot 31. 1. 2003 10:53
Nový
├ 
Re: Eckel...
Yeti 31. 1. 2003 13:42
Nový
└ 
Re: Eckel...
bj 8. 4. 2005 17:01
Nový
Pro zacatecniky?
zhivago 31. 1. 2003 12:46
Nový
Třetí vydání je na webu
Tomáš Valůšek 31. 1. 2003 18:34
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem