10. Přílohy. Příloha 1 Java SDK od firmy Sun. Přílohy. Vytvoření a spuštění programu,

Rozměr: px
Začít zobrazení ze stránky:

Download "10. Přílohy. Příloha 1 Java SDK od firmy Sun. Přílohy. Vytvoření a spuštění programu,"

Transkript

1 10. Přílohy Příloha 1 Java SDK od firmy Sun Firma SUN v současné době nabízí na tři verze vývojového prostředí (SDK Software Development Kit) pro Javu: - Java 2 Standard Edition určeno pro vývoj "běžných" aplikací v Javě, která je nyní k dispozici ve verzi pro tří prostředí: 32-bitová Windows, Sun Solaris a Linux, dokumentace je k dispozici v HTML formátu, - Java 2 Enterprise Edition určeno pro vývoj celopodnikových aplikací pro různé platformy, - Java 2 Micro Edition určeno pro vývoj aplikací v Javě pro "malá" zařízení (handheldy,...), Instalace vývojového prostředí pro Javu je v prostředí Windows jednoduché z WWW stránky se stáhne instalační soubor (program.exe o velikosti přibližně 30MB) a ten se spustí. Je vhodné si nastavit do proměnné PATH adresář se spustitelnými programy (obvykle C:\JDK1.3\BIN), aby jejich spouštění bylo jednodušší. Firma SUN dále nabízí RunTime Environment,což je prostředí pro spouštění již přeložených aplikací v Javě, součástí je i tzv. Java Plug-In podpora pro spouštění apletů v aktuálních verzích WWW prohlížečů, RunTime prostředí je k dispozici ve dvou verzích US English verzi a v mezinárodní (Internationalized) verzi. Na stránkách jsou dále k dispozici různé další knihovny a doplňky k jazyku Java (např. knihovna pro šifrování, knihovna pro zpracování pošty, prostředí pro servlety a JSP). Vytvoření a spuštění programu, V příkazu java se udává jméno třídy, ve které spustí metodu třídy main. Příslušný soubor třídy (soubor.class) se vyhledává ve standardní knihovně javy (rt.jar) a v aktuálním adresáři. Pokud je definována proměnná CLASSPATH, hledá se příslušná třída i v adresářích a archivech uvedených v této proměnné. Pokud je v definici třídy uveden balík (package), musí se jméno třídy uvést včetně celého jména balíku 15. V tomto případě musí být příslušný soubor.class v odpovídajícím podadresáři. Vysvětlíme si to na následujícím příkladě: Nechť je definována následující struktura adresářů C:\java \cz \vse \it_112 a v posledním adresáři nechť je přeložený program pole.class, který má definován package cz.vse.it_112; 15 V tomto pravidle je jedna výjimka jméno balíku se nemusí uvádět v případě třídy java.lang. 89

2 poté lze spustit tento program jedním z následujících způsobů: java cz.vse.it_112.pole tato varianta spuštění je úspěšná při splnění aspoň jednoho z následujících předpokladů: proměnná prostředí CLASSPATH se odkazuje na adresář C:\JAVA příkaz se zadá v adresáři C:\JAVA, java cz/vse/it_112/pole ve jménu třídy lze nahradit tečky lomítky java cp c:\java cz.vse.it_112.pole cesta ke třídě se uvede na příkazové řádce. Následující způsoby spuštění jsou chybné: java cz\vse\it_112\pole - obrácená lomítka java pole - není celý název třídy java cz.vse.it_112.pole - velké písmeno místo malého v těchto případech vypadá chybové hlášení následovně: Exception in thread "main" java.lang.noclassdeffounderror: pole (wrong name: cz/vse/it_112/pole) at java.lang.classloader.defineclass0(native Method) at java.lang.classloader.defineclass(classloader.java:403) at java.security.secureclassloader.defineclass (SecureClassLoader.java:101) at java.net.urlclassloader.defineclass (URLClassLoader.java:248) at java.net.urlclassloader.access$1(urlclassloader.java:216) at java.net.urlclassloader$1.run(urlclassloader.java:197) at java.security.accesscontroller.doprivileged(native Method) at java.net.urlclassloader.findclass(urlclassloader.java:191) at java.lang.classloader.loadclass(classloader.java:280) at sun.misc.launcher$appclassloader.loadclass (Launcher.java:275) at java.lang.classloader.loadclass(classloader.java:237) Pokud se soubor s příslušným jménem nenajde, vypadá chybové hlášení následovně (následující chyba vznikla po zadání příkazu java cz/vse/it_112/pole1, přičemž neexistuje soubor pole1.class): Exception in thread "main" java.lang.noclassdeffounderror: cz/vse/it_112/pole1 V případě mnohých aplikací v Javě je vhodné si pro jejich spouštění vytvořit dávkový soubor. Např. pro spouštění programu Jindent může dávkový soubor jindent.bat obsahovat následující řádek: java cp c:\javautil\jindent.jar Jindent cr w f %1 Programy obsažené v Java SDK od firmy SUN javac - příkazem javac se spouští překladač, který zkontroluje syntaxi vytvořeného programu a v případě, že je bez syntaktických chyb, vytvoří bytecode tj. soubory s koncovkou class (z jednoho souboru s koncovkou java vznikne tolik souborů s koncovkou class kolik obsahuje tříd včetně vnitřních). 90

3 java příkaz ke spouštění aplikací, má dvě základní syntaxe: java [volby] jméno_třídy [parametry] java [volby] jar archiv.jar [parametry] V první variantě je parametrem jméno třídy tato třída musí obsahovat metodu public static void main (String args[]) která se spustí a které se předají případné parametry z příkazové řádky. V druhé variantě se spouští aplikace uložená v archivu jar podrobněji je to popsáno v příloze číslo 4. Z voleb je nejdůležitější specifikace adresářů a jar souborů, ve kterých se mají vyhledávat jednotlivé třídy (soubory class) to se provádí pomocí volby classpath (či zkráceně cp). Adresáře a archivy lze též specifikovat pomocí environment proměnné CLASSPATH. Následuje ukázka dávkového souboru pro spouštění programu bluej, který hledá jednotlivé třídy ve 4 souborech jar (a v archivu rt.jar, který obsahuje základní třídy a který se prohledává automaticky): set CLASSPATH=c:\bluej\lib\bluej.jar;c:\bluej\lib\editor.jar set CLASSPATH=%CLASSPATH%;c:\bluej\lib\antlr.jar; set CLASSPATH=%CLASSPATH%;C:\jdk1.3\lib\tools.jar C:\jdk1.3\bin\java bluej.main %1 %2 %3 %4 %5 %6 %7 %8 %9 javaw stejný příkaz jako java s tím rozdílem, že se nevytváří konzolový vstup/výstup. Obvykle se používá pro spouštění grafických aplikací. appletviewer program pro testování apletů, javadoc program slouží pro dokumentování vytvořených tříd z komentářů vložených do zdrojového textu programu, ukázka použití je uvedena v příloze č. 3. jar tento program slouží pro vytváření archivů.jar, které obsahují větší množství tříd a jsou zkompresovány. Použití archivů jar umožňuje rychlejší provádění programů (méně souborů, menší objem) a jednodušší distribuci aplikací (jeden soubor). Podrobnější popis programu jar je v příloze 4. javap - The Java Class File Disassembler umožňuje metody a proměnné přeloženého programu (souboru.class) a s parametrem c převést tento soubor do čitelné formy. Od jiných výrobců jsou k dispozici nástroje pro převod souborů.class do zdrojového textu. Ve většině vývojových prostředí i jako samostatné produkty jsou k dispozici nástroje, které mají za úkol zabránit zpětnému generování zdrojového kódu pro tuto činnost se v Javě používá pojem obfuscate (zatemnit, poplést). jdb Java Debugger je přes příkazovou řádku ovládaný jednoduchý nástroj pro krokování programů v Javě, který umožňuje definovat zarážky (breakpoints) a vypisovat obsahy proměnných. Grafická vývojová prostředí obvykle obsahují komfortnější možnosti pro krokování programu. keytool, jarsigner a policytool slouží k zabezpečení vytvořených aplikací v Javě program keytool generuje dvojice klíčů a vytváří self-signed certifikáty dle X.509 v1, dále spravuje klíče uložené v zásobníku klíčů (keystore). Klíče a certifikáty se používají k digitálnímu podepisování vytvořených aplikací a apletů. Jarsigner digitálně podepisuje aplikace v souboru JAR a umožňuje v souborech JAR zkontrolovat digitální podpisy. K tomu využívá uživatelský zásobník klíčů. 91

4 rmic, rmid, rmiregistry a serialver tyto programy se používají při tvorbě a ladění vzdálených procedur vytvářených dle specifikace Remote method invocation (RMI), javah generování hlavičkových souborů objektů potřebných k tomu, aby se k nim dalo přistupovat z jazyka C, pokud se při volání z jazyka C postupuje dle specifikace JNI (Java Native Interface) nejsou hlavičkové soubory obvykle potřeba. 92

5 Příloha 2 Popis originální dokumentace Javy od firmy SUN Jméno třídy Hierarchie třídy Implementovaná rozhraní Úplná hlavička třídy Dostupné proměnné třídy. Typy a modifikátory proměnných. Přehled konstruktorů třídy. Přehled veřejných (public) a protected metod třídy. V prvním sloupci je uveden typ návratové hodnoty a případné modifikátory (static, protected, final,...) Ve druhém sloupci jsou uvedeny názvy metod, parametry a stručný popis. Všimněte si, že přetížené metody (např. compareto) jsou uvedeny vícekrát. 93

6 Přehled metod zdědených z předků. Následuje popis jednotlivých proměnných, konstruktorů a metod. Ukázka popisu jedné metody na příkladu metody valueof. Úplné hlavičky metody. Popis metody. Popis parametrů metody. Popis návratové hodnoty. Seznam výjimek, které v metodě mohou vzniknout. 94

7 Příloha 3 - Konvence pro psaní programů v Javě V této příloze jsou popsané konvence pro psaní programů v Javě založené na standardech firmy SUN. Jejich cílem je usnadnit čtení programů vytvořených jinými osobami a omezení některých chyb, které mohou vznikat z nepozornosti. Jména souborů Pro přípony souborů existují následující standardy: Java source.java Java bytecode.class Java archive.jar Součástí každého adresáře by měl být soubor README či index.html, ve kterém je popsán obsah adresáře. Struktura zdrojového souboru Javy Soubory by neměly mít více než 2000 řádek. Každý zdrojový soubor obsahuje jednu veřejnou třídu/rozhraní. Veřejná třída by měla předcházet privátní třídy a rozhraní v tomto souboru. Zdrojový soubor by se měl skládat z následujících části: - úvodní komentáře, které by měly obsahovat název souboru, historii změn a případné autorské údaje, viz příklad: /* * File: Kniha.java * * 21 jan 2001 xabcd01 prvni verze * 26 jan 2001 xabcd01 doplnena metoda vlozisbn */ - příkazy package a import - vlastní třídy a rozhraní včetně popisu jednotlivých tříd/rozhraní a metod. Následující tabulka obsahuje přehled jednotlivých částí třídy/rozhraní v doporučeném pořadí: Část deklarace třídy/rozhraní dokumentace k třídě/rozhraní (/**... */) příkaz class nebo interface komentáře k implementaci třídy/rozhraní (pokud jsou potřeba) proměnné třídy (static) proměnné instance konstruktory metody Poznámky popisy a komentáře, které převezme Javadoc komentáře k implementaci celé třídy, u kterých není vhodné, aby byly v dokumentaci generované pomocí Javadoc v pořadí public, protected, standardní (tj. bez modifikátorů přístupu) a nakonec private ve stejném pořadí, jako proměnné třídy metody by měly být seřazeny dle funkční příbuznosti, tak aby čtení bylo snazší 95

8 Zarovnávání, odsazování Odsazovat by se mělo po 4 mezerách. Jednotlivé řádky by neměly být delší než 80 znaků, neboť poté jsou obtížně zobrazované na mnoha terminálech či v některých nástrojích. Řádky je vhodné rozdělovat za čárkou či před operátorem. Komentáře Rozlišují se dva typy komentářů: - dokumentační, které se zahrnují do dokumentace vytvářené programem Javadoc (/**... */), - implementační, které se podobají komentářům z C++ (/*...*/ a //) Dokumentační komentáře musí být uvedeny před každou deklarací třídy, metody, rozhraní či proměnné, které mají modifikátor přístupu public či protected. Začínají znaky /** a končí znaky */. Text může obsahovat formátovací znaky HTML a speciální příznaky pro jméno-autora číselné označení verze odkaz na jinou třídu/metodu či na nějaké jméno_parametru popis popis návratové hodnoty z jméno_výjimky popis výjimky, která může nastat v metodě Následuje příklad dokumentačních komentářů: /** * Tato trida slouzi ke generovani vystupu s ruznymi zpusoby * kodovani ceskych znaku * *@author xabcd01 *@created 27. may 2001 */ public class Unicode { /** *obsahuje seznam ceskych znaku v kodovani Unicode v notaci Javy */ public static final String retezec = "\u00e1\u00c1\u00e9..."; /** * metoda main dle prvniho parametru prikazove radky vytiskne.* retezec na standardni vystup v pozadovanem kodovani * *@param ARGS prvni parametr prikazove radky obsahuje retezec * specifikujici pozadovane kodovani.*@see Supported Encoding v dokumentaci JDK */ public static void main(string ARGS[]) {... Příkaz javadoc Unicode.html vygeneruje dokumentaci ve formátu html. 96

9 Implementační komentáře slouží ke komentování implementace třídy a měly by se používat v případě, kdy slouží ke lepšímu čtení či porozumění kódu. Neměly by duplikovat informace, které lze snadno vyčíst z vlastního kódu. Potřeba psát implementační komentáře je někdy příznakem nízké kvality návrhu kódu v tomto případě je vhodnější přepsat kód. Následují příklady implementačních komentářů: /* * komentář, který je na více * řádcích */ /* jednořádkový komentář */ příkaz // komentář, který končí na konci řádku Deklarace Na každém řádku by měla být uvedena deklarace pouze jedné proměnné: int velikost; // velikost souboru Součásti deklarace by měla být i inicializace s výjimkou případů, kdy počáteční hodnota závisí na nějaké operaci. Deklarace by měly být na začátku bloku (na začátku metody, na začátku třídy,...) a ne až před prvním použitím. Pro toto pravidlo existuje jedna výjimka řídící proměnná cyklu u příkazu for: for (int i = 0; i < maxloops; i++) {... } Příkazy Na každém řádku by měl být pokud možno jen jeden příkaz. Následují doporučené způsoby formátování jednotlivých jazykových konstrukcí: if (podmínka) { příkazy } else { příkazy } while (podmínka) { příkazy } try { příkazy; } catch (ExceptionClass e) { příkazy; } finally { příkazy; } 97

10 Mezery Prázdné řádky zvyšují čitelnost kódu, pokud oddělují logické celky. Okolo operátorů (+ - * =...) by měly být na obou stranách mezery. Mezery by měly být i před a za závorkou. Konvence pro pojmenovávání Typ identifikátoru Pravidlo pro pojmenování Příklady balík (package) jméno balíku by mělo obsahovat na začátku jméno domény organizace v obráceném pořadí (cz.vse, com.sun), další strukturování záleží na vnitřních konvencích organizace, jméno by mělo com.sun.eng org.acm.sequin.pretty cz.vse.xabcd01.ukol2 org.gjt.mm.mysql obsahovat pouze malá písmena, třída (class) jméno třídy by mělo být podstatné jméno (více podstatných a přídavných jmen) začínající velkým písmenem class Kniha; class Casopis; class VstupniSchranka; rozhraní (interface) obdobně jako u třídy interface Publikace; interface Schranka; metoda jméno metody by mělo obsahovat sloveso, mělo by začínat malým písmenem, další slova v názvu by měla začínat velkým písmenem vratmax(); ulozdelku(); nactivetu(); proměnná jméno proměnné by mělo začínat malým písmenem, pokud obsahuje více slov, tak další by měla začínat velkým písmenem, jméno proměnné by nemělo obsahovat znaky $ a _, jméno Date datumnarozeni; int pocetvet; float studijniprumer; int i; proměnné by mělo vyjadřovat obsah, neměly by se používat jednoznaková jména s výjimkou řídících proměnných cyklů typu integer (proměnné i, j, k, l, m, n) konstanta jména konstant by měla být složena z velkých písmen, pro oddělení slov je použito podtržítko _ static final int MIN_WIDTH = 4; static final int GET_THE_CPU = 1; 98

11 Příloha 4 Jar vytváření a používání archivů Formát souborů JAR (Java Archive), které se používají pro seskupování více souborů (většinou soubory.class, mohou být i další) do jednoho zkompresovaného, je odvozen z formátu souborů ZIP. Soubory JAR jsou přenositelné mezi jednotlivými platformami a mohou obsahovat další doplňující informace o vložených souborech používá k tomu tzv. manifest soubor (META- INF\MANIFEST.MF) a případně soubory s digitálními podpisy (META-INF\*.SF). Soubory JAR se vytvářejí pomocí programu jar, který je součástí Java SDK. Program jar má parametry příkazové řádky odvozené od archivačního program tar, který se používá v unixových operačních systémech, a vypadá následovně: jar [volby] archiv vstupní_soubor[y] Volby jsou následující: C bude se vytvářet archiv (create) U existující archiv se bude aktualizovat (přidávat či měnit soubory) T vypíše se obsah existujícího archivu (table of contents) X soubory z archivu se zapíší do aktuálního adresáře a případně do podadresářů (extract) x soubor z archivu se vypíše pouze zadaný soubor F je zadán vstupní/výstupní archiv (jeho jméno je nutné uvádět i s koncovkou.jar), pokud není uveden tento parametr, použije se standardní vstup (s parametrem x či t) nebo standardní výstup (při vytváření) V na obrazovce zobrazuje podrobněji svoji činnost (verbose) 0 soubory se pouze vkládají, nekompresují m uživatelem vytvořený soubor manifest je uveden na příkazové řádce manifest M nebude se vytvářet soubor MANIFEST.MF Příklady použití: vytvoření archivu: jar cvf mujarchiv.jar *.class jar cvf it_112.jar cz\vse\it_112\*.class aktualizace archivu jar uvf it_112.jar cz\vse\it_112\*.class výpis obsahu archivu jar tvf it_112.jar extrahování souboru z archivu do aktuálního adresáře a podadresářů jar xvf it_112.jar vytvoření archivu včetně vlastního manifest souboru jar cvfm mujmanifest.mf mujarchiv.jar *.class 99

12 Do jar archivu lze vkládat (a z něho používat) i obrázky a zvukové soubory. Soubor jar lze specifikovat v proměnné CLASSPATH pro vyhledávání tříd (souborů.class): set CLASSPATH= mujarchiv.jar;it_112.jar;. - java bude vyhledávat soubory.class i v archivech mujarchiv.jar, it_112.jar a v aktuálním adresáři (a samozřejmě ve standardním archivu jre\lib\rt.jar). Následují dva příklady použití souborů jar v appletu: <applet code=animator.class archive="jars/animator.jar" width=460 height=160> <param name=foo value="bar"> </applet> <applet code=animator.class archive="classes.jar, images.jar, sounds.jar" width=460 height=160> <param name=foo value="bar"> </applet> V pomocném souboru MANIFEST.MF v archivu jar mohou být uloženy informace o verzích tříd, digitální podpisy tříd a některé další. Zde si popíšeme, jak vytvořit spustitelný archiv. Pokud máte aplikaci zabalenou v souboru JAR, potřebujete v souboru Manifest.mf označit třídu, která se má spouštět (tj. třídu, ze které se má spustit metoda public static void main (String[] args)). Toho se docílí řádkem: Main-Class: třída v Manifest souboru, který se vloží programem jar do archivu. Vlastní spuštění aplikace poté proběhne následujícím příkazem java jar archiv.jar 100

13 Příloha 5 - Kódování českých znaků v Javě znak Unicode hex. zápis Unicode zápis v Javě UTF-8 hex. zápis CP1250 hex. zápis ISO8859_2 hex. zápis CP852 hex. zápis á 00e1 \u00e1 c3a1 e1 e1 a0 87 Á 00c1 \u00c1 c381 c1 c1 b5 E7 č 010d \u010d c48d e8 e8 9f 8B Č 010c \u010c c48c c8 c8 ac 89 ď 010f \u010f c48f ef ef d4 93 Ď 010e \u010e c48e cf cf d2 91 é 00e9 \u00e9 c3a9 e9 e9 82 8E É 00c9 \u00c9 c389 c9 c ě 011b \u011b c49b ec ec d8 9E Ě 011a \u011a c49a cc cc b7 9D í 00ed \u00ed c3ad ed ed a1 92 Í 00cd \u00cd c38d cd cd d6 EA ň 0148 \u0148 c588 f2 f2 e5 CB Ň 0147 \u0147 c587 d2 d2 d5 C5 ó 00f3 \u00f3 c3b3 f3 f3 a2 97 Ó 00d3 \u00d3 c393 d3 d3 e0 EE ř 0159 \u0159 c599 f8 f8 fd DE Ř 0158 \u0158 c598 d8 d8 fc DB š 0161 \u0161 c5a1 9a b9 e7 E4 Š 0160 \u0160 c5a0 8a a9 e6 E1 ť 0165 \u0165 c5a5 9d bb 9c E9 Ť 0164 \u0164 c5a4 8d ab 9b E8 V souvislosti s Javou se můžete setkat s následujícími způsoby kódování českých znaků: - Unicode pro každý znak se používá 16 bitů, toto kódování používá Java vnitřně, pokud chcete zadat znak v tomto kódování v řetězci, je nutné mu předřadit znaky \u, - UTF-8 jedná se v podstatě o jiný způsob zápisu znaků Unicode (obdobně jako zápis \u...), přičemž se používá proměnlivá délka pro jednotlivé znaky (přibližně lze říct, že pro znaky anglické abecedy se používá jeden byte, pro znaky dalších hláskových abeced dva byte, pro znaky obrázkových abeced se používají tři byte). Existuje jednoznačný algoritmus pro převod mezi UTF- 8 a Unicode. Kódování UTF-8 se výrazně prosazuje v protokolech na Internetu i v Unixu. - CP1250 kódování znaků středo a východoevropských národů nepoužívajících azbuku v MS Windows, - ISO8859_2 mezinárodní standard kódování znaků středo a východoevropských národů nepoužívajících azbuku, používá se např. v Unixu a v některých protokolech na Internetu, - CP852 kódování znaků středo a východoevropských národů nepoužívajících azbuku v DOSu (standard IBM používaný i firmou Microsoft), - MacCentralEurope kódování znaků středo a východoevropských národů nepoužívajících azbuku na MacIntoshi, MacCentral- Europe 101

14 ú 00fa \u00fa c3ba fa fa a3 9C Ú 00da \u00da c39a da da e9 F2 ů 016f \u016f c5af f9 f9 85 F3 Ů 016e \u016e c5ae d9 d9 de F1 ý 00fd \u00fd c3bd fd fd ec F9 Ý 00dd \u00dd c39d dd dd ed F8 ž 017e \u017e c5be 9e be a7 EC Ž 017d \u017d c5bd 8e ae a6 EB a 0061 a A 0041 A Pokud ve zdrojovém textu programu jsou v řetězci použity národní znaky, překladač javac odhaduje jejich kódování dle svého prostředí tj. např. v českých Windows (i v DOS okně) kódování CP1250, v Unixu v závislosti na nastavení locales (ISO8859_2 nebo často ISO8859_1). Proto je z důvodů přenositelnosti vhodnější psát národní znaky v Unicodu (tj. např. á ve tvaru \u00e1). Při běhu javovských programů se též provádí konverze znaků vstupu do kódování Unicode a výstupu z kódování Unicode. Z kterého a do kterého kódu se převádí záleží opět na prostředí, ve kterém se program spouští. Aktuálně používanou kódovou stránku lze vypsat pomocí System.getProperty("file.encoding"). Třídy InputStream, OutputStream a jejich potomci mají problémy při zpracování textových vstupů/výstupů s ohledem na správné konverze kódů a z tohoto důvodů v Javě 1.1 přibyly třídy Reader a Writer. Programátor má možnost určit znakovou sadu v konstruktorech tříd InputStreamReader a OutputStreamWriter. V instancích těchto tříd lze též zjistit aktuální znakovou sadu metodou getencoding(). Pro třídění řetězců s národními znaky dle českých pravidel se používá třída Collator. Další podrobnosti o kódování a lokalizaci programu lze nalézt v dokumentaci JDK. 102

15 Příloha 6 - Seznam termínů a zkratek Termín Abstraktní metoda - Abstraktní třída Anonymní vnitřní třída Applet Balík (package) Datový typ proměnné Dědičnost Dynamické datové struktury (kontejnery) Garbage collector (čistič paměti) GUI (Graphic User Interface) Hodnota proměnné HTML (Hypertext Markup Language) Identifikátor proměnné Iterátor (Iterator) Java Java archive (JAR) Java bytecode Javadoc JDK (Java Development Kit) JVM (Java Virtual Machine) Definice pouze deklarace metody v abstraktní třídě, v potomcích této třídy musí být metoda naimplementována třída sloužící jako předek několika tříd jejichž společné vlastnosti představuje, obsahuje abstraktní metody, nelze vytvářet instance této třídy pomocí vlastního konstruktoru nepojmenovaná vnitřní třída, obvykle definovaná na místě parametru metody vnější třídy programy běžící v rámci WWW stránky na stanici klienta v prohlížeči pojmenovaná knihovna tříd a rozhraní označuje typ dat uložených v proměnné např. číslo, text, instanci konkrétní třídy vztah mezi třídami, umožňuje k základní třídě (předkovi) přidat další vlastnosti a vytvořit tak odvozenou třídu (potomka) třídy, jejichž instance slouží k uložení odkazů na předem neznámý počet instancí jiných tříd speciální proces, který se stará o uvolńování nepotřebných objektů z paměti grafické uživatelské rozhraní vlastní obsah proměnné jazyk pro vytváření hypertextových dokumentů pojmenování proměnné objekt, jehož úkolem je zpřístupnit prvky kontejneru objektově orientovaný programovací jazyk archiv přeložených tříd a doplňujících souborů, používá se při distribuci aplikací mezikód vytvořený překladačem, který je interpretován JVM program sloužící pro vytváření programátorské dokumentace tříd ve formátu HTML základní prostředí pro vytváření a spouštění programů v Javě platforma pro spuštění aplikací v Javě (zajišťuje vazbu na HW a OS a interpretuje bytecode) 103

16 Termín Kolekce (Collection) Konstanta Konstruktor Mapa (Map) též asociativní pole nebo slovník (Dictionary) Metoda Metoda instance Metoda třídy Množina (Set) Modifikátor třídy Objekt Polymorfismus Proměnná Přetečení proměnné Přetěžování metod (overloading) Přetypování Rozhraní (interface) Servlet Seznam (List) Třída (class) UML (Unified Modelling Language) Definice lineární dynamická datová struktura proměnná jejíž hodnota se nemění speciální metoda pro vytváření instancí tříd kontejner, který umožňuje ukládat dvojice klíč a hodnotu, klíč musí být jednoznačný funkční složka objektu, pomocí metod popisujeme činnost objektů metoda, která se provádí pro konkrétní instanci třídy, bez existence instance není možno ji spustit metoda, kterou je možno spustit bez existence instance,spouští se se jménem třídy lineární dynamická datová struktura, ve které má každý prvek jedinečnou hodnotu klíčové slovo uvedené před slovem class určující další vlastnosti třídy představuje souhrn dat a činností, které od něj můžeme žádat. Každý objekt má určité rozhraní, prostřednictvím kterého komunikuje s jinými objekty. možnost využívat v programovém kódu stejnou syntaktickou podobu pro metody s různou vnitřní reprezentací proměnnou určují tři části: identifikátor, datový typ a vlastní hodnota proměnné, týká se numerických proměnných a označuje stav, kdy při aritmetické operaci dojde k překročení rozsahu této proměnné možnost vytvořit v jedné třídě více metod stejného jména, které se liší počtem nebo pořadím nebo typem parametrů změna/upřesnění datového typu proměnné definuje hlavičky metod, které musí každá třída implementující toto rozhraní naimplementovat programy běžící na WWW serveru lineární dynamická datová struktura, ve které se hodnoty jednotlivých prvků mohou opakovat je obecný popis vlastností a činností objektů standard pro zápis/zobrazení objektových modelů 104

17 Termín Unicode URL (Uniform Resource Location) UTF8 Vnitřní třída Vstupní a výstupní proudy (Input/Output streams) Výjimka (exception) Zapouzdření Definice rozšířená znaková sada využívající 16 bitů pro uložení jednotlivých znaků identifikátor označující umístění dokumentu v rámci Internetu pravděpodobně nejrozšířenější způsob zápisu/přepisu/přenosu znaků v Unicode pomocí "běžných" znaků, standard v rámci Internetu třída definovaná uvnitř jiné třídy zobecnění vstupů a výstupů chybový stav, který narušuje běžný postup zpracování metody vlastnost tříd a instancí, možnost skrýt implementaci třídy a poskytnout uživateli rozhraní potřebné pro použití třídy 105

18 Literatura a odkazy Literatura Chan M.C., Griffith S. W., Iasi A. F.: 1001 tipů Java. Unis Publishing ISBN Eckel B.: Thinking in Java. Prentice Hall, ISBN Eckel B.: Thinking in Java 2 nd Edition. Prentice Hall, ISBN Eckel B.: Myslíme v jazyku Java, knihovna programátora. První část překladu anglického originálu. Grada Publishing, ISBN Eckel B.: Myslíme v jazyku Java, knihovna zkušeného programátora. Druhá část překladu anglického originálu. Grada Publishing, ISBN Grand M.: Java - Referenční příručka jazyka. Druhé vydání. Computer Press ISBN Herout P.: Učebnice jazyka Java. Kopp ISBN Rowe G. W.: An Introduction to Data Structures and Algorithms with Java. Prentice Hall ISBN Virius M., Štrupl D.: JBuilder verze 3, podrobný průvodce. Grada Publishing ISBN Informace o Javě na Internetu java.sun.com/j2se/1.3/docs/ on-line dostupná dokumentace JDK od firmy SUN, java.sun.com/docs/books/tutorial/index.html tutoriál k výuce Javy od firmy SUN, je provázán s on-line dokumentací, zde jsou volně ke stažení knihy B. Eckela týkající se jazyků Java a C++, java.sun.com informace o Javě od firmy SUN, na tomto serveru lze najít množství informací pro vývojáře v Javě, zpravodajský server specializovaný na oblast Javy, server s velkým množstvím aplikací a knihoven objektů v Javě, www stránky firmy IBM zaměřené na Javu, kde jsou k dispozici různé produkty pro Javu, výukové kursy zaměřené na Javu i mnoho informací pro vývojáře v Javě, 106

19 Vývojová prostředí a nástroje pro Javu Java SDK (java.sun.com.) Firma SUN vytváří základní vývojová prostředí pro jazyk Java pro operační systémy Solaris, Linux a Windows 9x/NT/2000. Další firmy vytvářejí vývojová prostředí pro další operační systémy (např. IBM). Nad těmito základními vývojovými prostředími vznikají grafická vývojová prostředí dalších firem, která umožňují pohodlnější vývoj aplikací. BlueJ ( Grafická nadstavba nad Java SDK, určená pro výuku Javy (se zaměřením na definici objektů a vazeb mezi objekty) napsaná na univerzitě Monash v Austrálii. V poslední verzi umožňuje dokumentovat vazby mezi objekty pomocí UML. JBuilder ( Firma Inprise/Borland nyní uvolnila základní verzi svého produktu k bezplatnému používání. Verze Professional a Enterprise jsou rozšířené o další vývojové nástroje pro vytváření rozsáhlých aplikací. NetBeans ( Vývojové prostředí vytvořené českou firmou NetBeans, nyní rozvíjené jako OpenSource. Forte (forte.sun.com) Vývojové prostředí založené na NetBeans vyvíjené a distribuované pod hlavičkou firmy SUN. Základní verze je distribuována zdarma. IBM VisualJava ( Kvalitní vývojové prostředí od firmy IBM, jejíž základní verze (s omezením na 800 objektů) je volně ke stažení. Jikes ( Překladač (náhrada programu javac, k používání potřebuje nainstalovaný Java SDK) od firmy IBM, který se šíří pod GNU licencí. Tento překladač je rychlejší a méně náročný na výkonnost počítače než javac z Java SDK. Program Jikes používá stejné parametry na příkazové řádce jako javac, z rozšíření doporučuji prostudovat parametr ++ (překlad v inkrementálním režimu, který ještě více zrychluje překlad při vývoji aplikace) a +P, kdy překladač kontroluje některé další chyby. Výstup je často menší, než výstup překladače javac program jikes nezahrnuje do výstupu kód, který se nepoužívá. Jlint ( V distribuci se nacházejí dva programy. Program antic, který hledá problematické konstrukce ve zdrojovém souboru (např. chybějící závorky v matematických výrazech, chyby v konstrukci case ). Druhý program jlint hledá v přeloženém programu (v bytecodu) podezřelé konstrukce, které obvykle znamenají logickou chybu. Program jlint pro vyhledání chyb potřebuje překlad s parametrem g (začlenění tabulky lokálních proměnných do bytecodu). Doporučuji programy antic a jlint nainstalovat a používat. 107

20 Jopt (www-i2.informatik.rwth-aachen.de/~markusj/jopt) Program Jopt (Java Class File Optimizer) analyzuje všechny metody v programu a snaží se zrušit ty části, které nejsou potřeba. V průměru se sníží velikost programu (souboru jar) o 30%. Současně provádí drobné optimalizace bytecodu. Realj ( Jednoduché vývojové prostředí pro Javu napsané v jazyku C, které lze zdarma používat pro výuku a je vhodné pro méně výkonné počítače. JCreator ( Další vývojové prostředí pro Javu napsané v jazyku C s nízkými nároky na technické vybavení, které lze zdarma používat. 108

3. Základy programovacího jazyka Java

3. Základy programovacího jazyka Java 3. Základy programovacího jazyka Java Programovací jazyk Java nese označení jazyk 3.v generace 3GL, kde označeni 3 označuje imperativní jazyk vysoké úrovně. Tento jazyk se vyznačuje vysokou mírou univerzálnosti,

Více

Algoritmizace. Cíle předmětu

Algoritmizace. Cíle předmětu Cíle předmětu Algoritmizace naučit se sestavovat algoritmy řešení jednoduchých problémů a zapisovat je v jazyku Java Organizace předmětu přednášky (učast nepovinná, ale doporučená) cvičení střídavě u tabule

Více

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23 Seminář Java Úvod Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Úvod 1/ 23 Téma přednášky Organizace semináře Java úvod, distribuce Radek Kočí Seminář Java Úvod 2/ 23

Více

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Úvod do programování v jazyce Java

Úvod do programování v jazyce Java Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz

Více

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22 Seminář Java Úvod Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Úvod 1/ 22 Téma přednášky Organizace semináře Java úvod, distribuce Radek Kočí Seminář Java Úvod 2/

Více

Program. Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce

Program. Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce Seminář Java I Seminář Java I p.1/32 Program Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce Demonstrační příklad Seminář Java I p.2/32 Organizace semináře 12 seminářů

Více

Vývojové nástroje jazyka Java

Vývojové nástroje jazyka Java Vývojové nástroje jazyka Java Tato kapitola informuje čtenáře, jaké nástroje je zapotřebí nainstalovat pro spouštění a vývoj programů v jazyce Java, hlavním cílem kapitoly je seznámit čtenáře s aplikacemi,

Více

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem

Více

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013 Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521

Více

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20 Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................

Více

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Programovací jazyk Java

Programovací jazyk Java 1 z 8 Programovací jazyk Java Enumerace (výčty) Složitější definice výčtového typu Konstanty anonymních typů Výčtový typ a datové struktury Java packaging JAR archivy CLASSPATH Apache Ant 10. přednáška

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25 Programování v C# Úvodní slovo 1 / 25 Obsah přednášky Seznámení s předmětem Co je.net Vlastnosti.NET 2 / 25 Kdo je kdo Petr Vaněček vanecek@pf.jcu.cz J 502 Václav Novák vacnovak@pf.jcu.cz?? Při komunikaci

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

Matematika v programovacích

Matematika v programovacích Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1 Algoritmizace Cíl předmětu - naučit se sestavovat algorimy řešení základních problémů a zapisovat je v jazyku Java. Jádrem předmětu jsou data, typy, výrazy a příkazy demonstrované v programovacím jazyce

Více

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

RMI Remote Method Invocation

RMI Remote Method Invocation 2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient

Více

11. Přehled prog. jazyků

11. Přehled prog. jazyků Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

Více

Vytváření a použití knihoven tříd

Vytváření a použití knihoven tříd Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více

Regulární výrazy. Vzory

Regulární výrazy. Vzory Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO

Více

3 KTE / ZPE Informační technologie

3 KTE / ZPE Informační technologie 3 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Komentáře

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT Dnešní téma Oblasti standardizace v ICT Případové studie standardizace v ICT: 1) Znakové sady 2) Jazyk 1. technická infrastruktura transfer a komunikace informací, přístup k informacím, sdílení zdrojů

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle

Java [džava] nebo [džáva] v americkém slangu kafe Sun Microsystems nyní Oracle Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle Významné zdroje ze stovek/tisíců dostupných http:// java.sun.com Java http://dione.zcu.cz/java výborný rozcestník Historie

Více

Vytváření uživatelských datových typů a funkcí v Javě

Vytváření uživatelských datových typů a funkcí v Javě IBM Software Group Vytváření uživatelských datových typů a funkcí v Javě Jan Musil (jan_musil@cz.ibm.com) IBM Certified System Administrator - Informix Dynamic Server V11 2007 IBM Corporation Přehled prezentace

Více

Obsah. Kapitola 1. Kapitola 2

Obsah. Kapitola 1. Kapitola 2 Stručný obsah Předmluva...17 Úvod...19 Začínáme...25 Koncepce objektově orientovaného programování...51 Základy jazyka...59 Třídy a objekty...91 Rozhraní a dědičnost... 133 Genericita... 155 Balíčky...

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Objekty strana 11. Abstrakce je základní objektovou vlastností. Skutečnost, kterou chceme do programu promítnout,

Objekty strana 11. Abstrakce je základní objektovou vlastností. Skutečnost, kterou chceme do programu promítnout, Objekty strana 11 2. Objekty Java je objektově orientovaný programovací jazyk přenositelný na různé platformy. Pracuje tedy s objekty. Co to vlastně jsou objekty? Jedná se o abstrakci z reality, každý

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

3. Třídy. Základní pojmy objektového programování. Třídy

3. Třídy. Základní pojmy objektového programování. Třídy 3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat

Více

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994

Více

Algoritmizace a programování. Terminálový vstup a výstup

Algoritmizace a programování. Terminálový vstup a výstup Algoritmizace a programování Terminálový vstup a výstup Verze pro akademický rok 2012/2013 1 Výpis hodnot Terminálový vstup a výstup budeme používat jako základní způsob interakce programu s uživatelem

Více

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

O autorovi O odborném korektorovi Úvod 17 Vývoj jazyka Java Java SE 8 Struktura této knihy Předchozí zkušenosti s programováním nejsou potřebné

O autorovi O odborném korektorovi Úvod 17 Vývoj jazyka Java Java SE 8 Struktura této knihy Předchozí zkušenosti s programováním nejsou potřebné O autorovi 15 O odborném korektorovi 15 Úvod 17 Vývoj jazyka Java 17 Java SE 8 19 Struktura této knihy 20 Klíčové znalosti a pojmy 20 Testové otázky 20 Odpovídá expert 20 Cvičení 20 Předchozí zkušenosti

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Ant aneb Ferda Mravenec, práce všeho druhu

Ant aneb Ferda Mravenec, práce všeho druhu Ant aneb Ferda Mravenec, práce všeho druhu Nástroj na sestavování projektů (aplikací) podobný programu make, který se používá u programů v C či C++. Program Ant je volně k dispozici (tzv. The Apache Software

Více

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans. 1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými

Více

Objektově orientované programování

Objektově orientované programování 10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Java Cvičení 01.  CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Java Cvičení 01 http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Příklady - Porovnání Co kód vypíše? package cz.cuni.mff.java.example01.tests; public class Test01

Více

Úvod Vývojová prostředí Štábní kultura Dokumentace Konec. Programování v C# Prostředí a doporučení 1 / 39

Úvod Vývojová prostředí Štábní kultura Dokumentace Konec. Programování v C# Prostředí a doporučení 1 / 39 Programování v C# Prostředí a doporučení 1 / 39 Obsah přednášky Vývojová prostředí.net SDK Microsoft Visual Studio.NET SharpDevelop Štábní kultura Dokumentace 2 / 39 Možnosti vývoje Pro drsňáky libovolný

Více

Úvod do programování v jazyce Java

Úvod do programování v jazyce Java Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 26. září, 2012 Petr Krajča (UP) KMI/UP3J: Seminář I. 26.9.2012 1 / 18 Organizační informace email: petr.krajca@upol.cz

Více

Úvod do programování - Java

Úvod do programování - Java Úvod do programování - Java Cvičení č.1 1 1 UPR informace Cvičící í RNDr. Eliška Ochodková, kancelář A1010 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející Ing. Michal Krátký, Ph.D., kancelář

Více

Remote Method Invocation RMI

Remote Method Invocation RMI Remote Method Invocation RMI Java TM Remote Method Invocation (RMI) umožňuje objektu na jedné Java Virtual Mashine(JVM) jednoduše spustit metodu jiného objektu na vzdálené JVM. Při volání vzdálené metody

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Dědění, polymorfismus

Dědění, polymorfismus Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Objektové programování

Objektové programování Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k

Více

Úvodní informace. Petr Hnětynka 2/2 Zk/Z

Úvodní informace. Petr Hnětynka  2/2 Zk/Z JAVA Úvod Úvodní informace Petr Hnětynka hnetynka@d3s.mff.cuni.cz http://d3s.mff.cuni.cz/~hnetynka/java/ 2/2 Zk/Z zkouška písemný test zápočet zápočtový test u počítače max 5 opakování zápočtový program

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

RMI - Distribuované objekty v Javě

RMI - Distribuované objekty v Javě Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování

Více

Programovací techniky

Programovací techniky Programovací techniky 2005/2006 přednášky: Ing. Pavel Mautner, Ph.D. (UK415) cvičení: Ing. Pavel Mautner, Ph.D. Ing. Roman Mouček, Ph.D. (UK415) Ing. Štěpán Albrecht Plán přednášek PT -2005/2006 1. Úvod,

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování Vzdělávací oblast Informatika a informační a komunikační technologie pro vzdělávací obor Programování

Více

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd 7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

IRAE 07/08 Přednáška č. 1

IRAE 07/08 Přednáška č. 1 Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

ADT/ADS = abstraktní datové typy / struktury

ADT/ADS = abstraktní datové typy / struktury DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní

Více

7. Statické prvky třídy

7. Statické prvky třídy Statické prvky třídy strana 61 7. Statické prvky třídy V úvodních kapitolách jsme popsali deklaraci a používání datových atributů a metod instance. Jsou to nejčastě ji používané součásti třídy, nicméně

Více

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Bridge. Známý jako. Účel. Použitelnost. Handle/Body Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době

Více

Softwarové komponenty a Internet

Softwarové komponenty a Internet Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více