XJAV1 OOP PRO INTERNET A INTRANET

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

Download "XJAV1 OOP PRO INTERNET A INTRANET"

Transkript

1 OSTRAVSKÁ UNIVERZITA P Ř ÍRODOVĚ DNÁ FAKULTA XJAV1 OOP PRO INTERNET A INTRANET ING. DAVID BRAŽINA OSTRAVA

2 Cíle předmětu Po prostudování textu budete znát: základní třídy používané jazykem JAVA. Seznámíte se ze základními prostředky pro tvorbu aplikací a appletů. Poznáte strukturu programovacího jazyka JAVA a seznámíte se z jeho syntaxí. Získáte: dovednosti ve tvorbě dynamických internetových stránek. Získáte praktické zkušenosti s tvorbou interaktivních appletů, budete umět spojit vlastnosti aplikace a appletu v rámci složitějších programových struktur. Budete schopni: Zpracovávat události myši a klávesnice a zároveň s těmito událostmi pracovat. Budete schopni vytvořit interaktivní aplikace v rámci webovských stránek. Naučíte se pracovat s editorem JCreator od Xinox Software. Čas potřebný k prostudování učiva předmětu: týdnů 2

3 Obsah 1. ÚVOD HISTORIE JAVY VÝHODY A NEVÝHODY JAVY Vlastnosti Javy APLIKACE A APPLETY JAVASCRIPT VÝVOJOVÉ PROSTŘEDÍ JAVY - APLIKACE PLATFORMA JAVY OBJEKTOVÉ PROGRAMOVÁNÍ JAVY PSANÍ PROGRAMU ZÁKLADNÍ SCHÉMA PROGRAMU PRÁCE S OBJEKTY Odkazování objektů TŘÍDY A DĚDIČNOST Atributy a metody třídy Import třídy Kontrola přístupu METODY BALÍKY Tvorba a použití balíčků Výjimky VÝRAZY ŘÍZENÍ BĚHU PROGRAMU Komentář Identifikátory Literály Pole Operátory Větveni programu Smyčky VSTUP A VÝSTUP Práce se soubory ZPRACOVÁNI VSTUPU A VÝSTUPU MYŠI SÍŤOVÉ PROGRAMOVÁNÍ V PROSTŘEDÍ TCP/IP TEST Č VÝVOJOVÉ PROSTŘEDÍ JAVY - APPLETY PRÁCE S TEXTEM A GRAFIKOU Vložení textu Typy písma Barva písma VYKRESLOVÁNÍ GEOMETRICKÝCH TVARŮ Kreslení čar Kreslení obdélníků

4 Kreslení kružnic a oblouků UDÁLOSTI MYŠI A KLÁVESNICE Události myši Události klávesnice PANELY ZPRACOVÁNI GRAFICKÉ UDÁLOSTI Další typy grafických objektů POKROČILÉ PRVKY GRAFICKÉHO ROZHRÁNI Grafické objekty a animace TŘÍDA MEDIATRACKER ZVUKOVÉ PŘEHRÁVKY TEST Č SEZNAM POUŽITÉ A DOPORUČENÉ LITERATURY

5 1. Úvod V této kapitole se dozvíte: jak bude členěn kurz XJAV1, podmínky úspěšného absolvování předmětu Doba potřebná k prostudování této kapitoly: 5 minut Předmět OOP pro Internet a Intranet si klade za cíl seznámit účastníky kurzu s možnostmi programovacího jazyku JAVA při tvorbě klientských aplikací a appletů. V první polovině semestru se seznámíte s tvorbou aplikací, se síťovými prostředky Javy, se základním programovým vybavením, a s možnostmi vytváření samostatných programů a jejich výrazovými prostředky. V druhé polovině semestru se soustředíme na tvorbu appletů, jako prostředků pro oživení internetových stránek. Dále se seznámíte s množstvím prostředků, které pracují s multimédii jako je zvuk, obrazy a animace. Pro studium tohoto předmětu je nutná alespoň částečná znalost tvorby internetových stránek a jazyka HTML. Výhodou je znalost programování v libovolném objektově orientovaném programovacím jazyku. Podmínkou úspěšného absolvování předmětu je vypracování úkolů označených symbolem obálky a vypracování odpovědí na testy jedna a dvě. Veškeré dotazy a odpovědí na korespondenční úlohy a testy zasílejte na adresu david.brazina@osu.cz 5

6 2. Historie Javy V této kapitole se dozvíte o: Vzniku Javy, dynamických WWW, integraci Javy do prohlížeče. Doba potřebná k prostudování této kapitoly: 15 minut Programovací jazyk Java vznikal kolem roku Členové vývojového týmu Green společnosti Sun Microsystems, si uvědomili, že v budoucnosti bude většina spotřební elektroniky obsahovat počítačové mikroprocesory. Java pak byla výsledkem výzkumu v oblasti komunikace mezi těmito spotřebními zařízeními. Prvním spotřebním zařízením, které využívalo novou technologii byl dálkový ovladač pro televizor a videorekordér. Pomocí animované postavičky přecházel uživatel s jednoho grafického menu do druhého. Tak spatřila světlo světa první aplikace Javy. V roce 1993 nastupuje World Wide Web a získává si velkou popularitu. Každý kdo měl přístup k sítí, se mohl k němu připojit, a nezáleželo na tom jaký po užíval operační systém. World Wide Web (dále jen WWW) umožňoval přístup k statickým textům nebo obrázkům. S rostoucím nárůstem uživatelů internetu se stupňovali požadavky na dynamické prostředí webovských stránek. Prvním prohlížečem, který umožňoval spouštění dynamických stránek byl WebRuner, (později značen jako HotJava). V roce 1995 byl prostřednictvím sítě internet, zveřejněn zdrojový kód Javy. V témže roce společnost Netscape integrovala Javu do svého prohlížeče. 6

7 2.1. Výhody a nevýhody Javy V této kapitole se dozvíte o: Internetu a programování, přenositelnosti a virtuálním stroji. O vlastnostech Javy a kompilaci programu, Doba potřebná k prostudování této kapitoly: 30 minut Může se zdát, že není třeba vyvíjet programovací jazyk pro internet. Vždyť stačí napsat program v jakémkoliv programovacím jazyce a uložit jako spustitelný soubor v rámci HTML. Pokud by šlo pouze o sepsání a spuštění programu zdá se tento nápad vynikající. Problémy ale nastanou v případě, pokud se má takto upravená stránka opravdu umístit na web a spouštět se z něj. Každý takový program bude vyžadovat podporu knihoven, které budou komunikovat s www stránkami. Tyto knihovny se budou navzájem lišit a tak bude třeba další množství knihoven, které program budou doprovázet. Snad ale nejklíčovějším problémem, který by nastal, je délka programu a doba trvání načítání do paměti příjemcova počítače. I natažení velmi malého objemu dat po sítí, může trvat dlouhou dobu. Poruchy na cestě způsobí, že některé data se budou muset poslat vícekrát. Výhodou Javy v tomto směru je, že programy, které v Javě vznikají jsou nepoměrně menší než srovnatelné programy psány v jiném programovacím jazyce. V neposlední řadě by bylo nutné do programu zahrnout spoustu knihoven tak, aby se zaručila potřebná bezpečnost kódu a spouštěcího prostředí. Velkou zátěží by se stal každý operační systém lišící se architekturou od operačního systému autora programu. 7

8 To všechno vedlo k tomu aby se z Javy stal programovací jazyk pro svět internetu. Java je objektově orientovaný, na platformě nezávislý, programovací jazyk. Aplikace psaná pro Linux, či Windows je bez větších problémů přenositelná na palm-top či mobilní telefon. Nezávislost Javy je dána tzv. virtuálním strojem, který zajišťuje spustitelnost zdrojového kódu. Lze ji využít k programování plnohodnotných aplikací na jedné straně a appletů na straně druhé. Java není vhodným programovacím jazykem pro systémové programování (operační systémy, ovládače), tuto nevýhodu kompenzuje podpora internetových technologií, díky nimž se Java stala univerzálním programovacím jazykem informačních sítí. 8

9 Vlastnosti Javy Syntaxe jazyka je odvozena od jazyků C a C++. Mnoho programových návyků osvojených v C++ se vám při začátcích s Javou bude hodit. Na rozdíl od C++ není třeba v Javě dealokovat nepotřebné objekty. Java je odstraní automaticky. V Javě jsou odstraněny i pointery (ukazatele), preprocesor (makra, direktivy), a další programové prostředky užívané v C++. To vede k tomu, že kód je mnohem jednodušší a přehlednější. I když slovo přehlednější je nutno brát občas s velkou rezervou. Obr.1 9

10 Nejdůležitějšími vlastnostmi Javy jsou: Na platformě nezávislý jazyk. Program který je napsán v javě lze spustit na libovolném počítači nezávisle na operačním systému. Program psaný pro javu lze bez větších komplikací přenést na mobilní zařízení jako jsou mobilní telefony, palm-topy a podobně. Objektově orientovaný jazyk. Stejně jako C++, Delphi a podobně se i Java řadí do rodiny objektově orientovaných jazyků. Platí pro ní stejné pravidla. Výhodou je zde zejména větší přehlednost a jednoduchost. Technologie Internetu. Rozmach Javy je víceméně odrazem rozmachu Internetu. Internetový přenos se uskutečňuje prostřednictvím TCP/IP protolu a Java jako univerzální programovací jazyk jej podporuje spolu s řadou dalších internetových technologií jako jsou grafické, zvukové i filmové formáty. Jazykovým kódem Unicode podporuje i řadu neanglických jazyků. Multithreading. Možnost provádění několika částí programů v jednom okamžiku. Bezpečnost. Součástí programových prostředků je třída SecurityManager, která hlídá všechny akce, které mohou mít vliv na stav lokálních souborů. Zároveň se stará o bezpečný přístup k síti. 10

11 2.2. Aplikace a applety V této kapitole se dozvíte o: Základních typech programů vyvíjených Javou. Naučíte se vytvořit applet z aplikace. Dovíte se o omezeních kladených na applety. Doba potřebná k prostudování této kapitoly: 30 minut V Javě programujeme dva základní typy programů. Jsou to applety a aplikace. Může se to zdát možná složité, tak si to zjednodušíme. Applety jsou malé aplikace, které spouštíme prostřednictvím internetových stránek. Slouží jako prográmky, které naše stránky mají oživit, dát do nich nějaký prvek originality a hlavně dynamiky. Aplikaci myslíme samostatný program, který vyžaduje Java Platformu pro své fungování. Na aplikaci nejsou kladená bezpečnostní omezení. To znamená, že aplikace může pracovat se soubory (zapisovat do nich). Applet je naproti tomu program určený pro umístění na webovský server. Je včleněn do HTML kódu tvořícího www stránku. Po vstupu klienta se automaticky nahraje na jeho počítač a je spuštěn. Protože představa, že kliknutím na něčí stránku si naformátujete disk se nikomu nelíbila, nesmí applet vykonávat určité operace: Applet Javy nesmí: Číst a zapisovat do lokálních souborů. Manipulovat s lokálními soubory. Spouštět programy na klientském počítači. Tisknout. Přepisovat systémové proměnné. Číst některé systémové proměnné. Číst data ze schránky (clipboardu). Ukončit práci virtuálního stroje. Navazovat síťová spojení (s výjimkou svého domovského serveru). 11

12 Před spuštěním appletu je třeba na něj umístit odkaz do HTML tvořícího WWW stránku. To se děje pomocí formátovací značky <APPLET>, která má následující strukturu <APPLET CODE = trida.class WIDTH= sirka HEIGHT= vyska [ NAME= jmenoinstanceappletu ] [CODEBASE= url ] [ARCHIVE= Jarsoubor1,2..n ] [ALT= alternativni text ] [ALIGN= zarovnani ] [HSPACE nebo VSPACE= vodorovne nebo svisle Odsazeni ] </APPLET> Applety na téže WWW stránce spolu mohou komunikovat pomocí volání svých veřejných metod. Applet, kterého chceme volat musí být pojmenován (name) ve značce <APPLET>. Podívejme se na příklad aplikace a appletu: Aplikace import java.io.*; public class VypisAdresare Public static void main(string[] argv) String jmenoaktdir = System.get.property("user.dir") File aktdir = new File(jmeno AktDir); String[] jmena; jmena = aktdir.list(); for (int i=0; i<jmena.length; i++) System.out.println(jmena[i]); File[] soubory soubory = aktdir.listfiles(); for (int i=0; i<soubory.length; i++) System.out.println(soubory[i].getName()+"t\") +soubory[i].length()); Příklad 1. Tento program je poměrně složitý takže jej přelétněte jen opravdu velmi zběžně. Důležité je si všimnout tučně označeného řádku. Ten volá knihovnu java.io. Následující znak.* volá všechny funkce třídy java.io Podrobněji si to osvítíme v příkladech věnovaných tvorbě appletů. 12

13 jednoduše. Applet Pokud vezmeme tuto aplikaci a budeme chtít z ní udělat applet, provedeme to <html> <head> <title>applet</title> <body> Funguje mi tento applet?<p> <applet code= VypisAdresare.class width= 200 height= 200 > </applet> </body> </html> Příklad 2 Co myslíte, bude daný applet fungovat? Když ne tak proč, a když ano tak kdy? 13

14 3. JavaScript V této kapitole se dozvíte o: o tvorbě javascriptů. Dozvíte se jak je javascript uvozován na HTML stránce. Dovíte se jaký je rozdíl mezi javascriptem a Javou. Doba potřebná k prostudování této kapitoly: 30 minut JavaScript je kompaktní objektově orientovaný programovací jazyk primárně určen pro internetové aplikace, které pracují na bázi aplikací klient-server. I přes podobnost obou názvů a vlastní syntaxe nelze říct, že jazyky Java a JavaScript jsou totožné. JavaScript je vyvíjen firmou Netscape, která jej prezentuje jako prostředníka mezi internetovou stránkou umístěnou na serveru a klientem, který se na server přihlásil. Internetovou stránku psanou v JavaScriptu odlišíme od stránky psané v Javě snadno. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>javascript</title> </head> <body> <script language="javascript"> <!-- document.write("tak co tady asi napsat?"); //--> </script> </body> </html> Přiklad 3 14

15 Podívejme se na tučné řádky. Tyto informuji prohlížeč o tom jakým způsobem má být daná stránka zpracována. Výsledkem taková stránky pak je: Obr.2 Dvojklikem na obrázek zobrazíte originální stránku 15

16 4. Vývojové prostředí Javy - Aplikace V této kapitole se dozvíte o: zdrojích, kde najdete programové vybavení pro programování v Javě. Dozvíte se o kompilaci programu a naučíte se využívat programů obsažených ve vlastním vývojovém prostředí Javy Doba potřebná k prostudování této kapitoly: 15 minut Hned v úvodu je třeba říct, že k tomu aby jste mohli úspěšně programovat v Javě, musíte sehnat nějaké to programové vybavení. To najdete na domovských stránkách Sun Microsystems. A to na: Stáhněte si soubor, který má velikost okolo 35Mb a nainstalujte. Po nainstalování najdete několik nových souborů v adresáři c:\java\bin. Než se na ně podíváme blíže řekneme si jakým způsobem vlastně program vytvoříme. Vytvoření zdrojového kódu (soubor.java) Přeložení kódu programem javac.exe (soubor.class) Vytvoření appletů Spuštění souboru.class interpretem java.exe Appletviewer.exe Obr.3 16

17 Podle obrázku je vidět jakým způsobem postupujeme při vlastním chodu programu. Poté co jej napíšeme, např. v textovém editoru notepad, a uložíme s příponou.java tento soubor přeložíme programem javac.exe a dostaneme soubor s příponou.class. Tento soubor pak spustíme programem java.exe, nebo jej vnoříme do html kódu jako applet, nebo se na něj podíváme pomocí programu appletviewer.exe. Že je to složité? Tak si to ukážeme: 1. V notepadu napíšu zdrojový kód programu, a hotový zdrojový kód uložím jako MujProgram1.java 2. Z adresáře c:\java\bin spustím program javac.exe: c:\java\bin\javac.exe c:\programy\mujprogram1.java 3. Výsledným souborem bude c:\programy\mujprogram1.class 4. Programem c:\java\bin\java.exe spustím soubor MujProgram1.class. Obr.4 class MujProgram1 public static void main (String args[]) System.out.println ("Dobry Den!"); Příklad 4 Všimněte si, že název programu a jméno třídy se shodují včetně velkých a malých písmen. Podívejme se co vlastně tento program dělá. První příkaz vytvoří počáteční třídu. Se shodným názvem celé třídy. Další příkaz definuje funkci programu. Informuje nás o tom o co vlastně půjde. 17

18 Činnost programu (aplikace), začíná vždy funkcí main. Její definici jste viděli. Složené závorky uzavírají vlastní tělo programu. Systém je objekt, out je standardní výstupní zařízení. MujProgram1.class si můžu prohlédnout i v appletvieweru, nebo jako applet ho integrovat na webovskou stránku a prohlédnout si jej přímo v prohlížeči. Vedle programů javac.exe, java.exe a appletviewer.exe existují další programy, které usnadňují práci při diagnostikování problémů a chyb. Jedním z nich je javadoc.exe, který vytváří dokumentaci k souboru MujProgram1.java v HTML formátu. Program javap.exe se nazývá disassambler javy a převádí soubory třídy javy (MujProgram1.class) do zdrojového kódu. 18

19 4.1. Platforma Javy V této kapitole se dozvíte o: JAVA virtual machin, JAVA Core o a bytecodu Doba potřebná k prostudování této kapitoly: 15 minut Jak již bylo řečeno, Java je na platformě nezávislý programovací jazyk. Podívejme se tedy na to jak toho dosahuje. Zdrojový kód programovacích jazyků (Pascal, C, C++) se při překladu přepisuje na strojový kód konkrétního procesoru. V Javě se zdrojový kód místo do strojového přepisuje do tzv. bytového kódu (bytecode). Kompatibilita takového kódu je pak zajištěna na binární úrovni. Rozdíly mezi hardwarovým vybavením pak vyrovnává vlastní Java Platforma, která se skládá ze dvou části: Abstraktní počítač je to virtuální zařízení (Java Virtual Machine - JVM), které obsahuje interpret (vykonává vlastní kód) a runtime systém (hardwarový optimalizátor) Aplikační programové rozhraní (Java Core API) - jsou to základní knihovny pro psaní programů. Když požádáte kompilátor Javy o kompilaci programu, ten nevygeneruje normální program. Místo generování spustitelného souboru s instrukcemi pro procesor 80x86 překladač Javy vyrobí to čemu se říká Java bytecode. Pokud tento program chcete spustit potřebujete k tomu Javovský virtuální stroj na jakémkoliv počítači a operačním systému, který zrovna potřebujete. Interpretace bytecode v prohlížeči snižuje výkon programu. Tento problém řeší takzvaná just-in-kompilace. Pokud je tato metoda povolena, zkonvertuje se bajtový kód na vnitřní kód počítače (strojový kód). Tento se uloží na disk a následně spustí. 19

20 5. Objektové programování Javy V této kapitole se dozvíte o: základní kostře programu, o tom co je objekt a zmíníme se o třídách Doba potřebná k prostudování této kapitoly: 15 minut Nejjednodušším způsobem jak se naučit nový programovací jazyk, je. programování!!! No vida, když jsme objevili toto zlaté pravidlo můžeme se střemhlav vrhnout do víru programátorských vášní a slastných opojení z toho, že to funguje. Každý program musí obsahovat alespoň jednu třídu, class. Class MujProgram1 vlastní část Všimněte si, že název třídy je shodný s názvem výsledného souboru.class včetně malých a velkých písmen, a že nekončí středníkem. Třídy v průběhu programu vytvářejí jakési berličky, objekty, které využijí a odstraní. Objekt spojuje programový kód a data do jedné samostatné jednotky. Třídy jsou příkazy programu, které definují data a kód v objektu. Musíme si uvědomit, že třída je to s čím se v Javě budeme setkávat na každém kroku. Jakmile vytvoříme jednu třídu pak uvnitř ní můžeme vytvořit tolik objektů kolik potřebujeme. Díky tomu pak stačí takovou třídu připojit do nového programu a nemusíme všechny metody definovat znovu a znovu. Jak jsme si už ukázali, výsledné programy Javy dělíme podle umístění na aplikace a applety. Appletem rozumíme program integrovaný do webovské stránky. Každý jiný program je pak aplikací. Jak aplikace tak i applety jsou třídy, které vycházejí ze třídy Object. O třídách si ještě povíme později. 20

21 5.1. Psaní programu V této kapitole se dozvíte o: funkci a možnostech editoru JCreator firmy Xinox Software. Úlohou této kapitoly je aby jste se pokusili s tímto produktem seznámit a pochopili jeho ovládání. Doba potřebná k prostudování této kapitoly: 45 minut Při psaní jakéhokoli programu potřebujeme nezbytně pár věcí. Předně si musíme ujasnit v jakém prostředí vlastně chceme pracovat a jaký styl práce nám vyhovuje. Pro účely tohoto kurzu nám poslouží program od firmy Xinox Software, který se jmenuje JCreator. Je volně dostupný jak na internetu a vy jej můžete najít zde. Obr.5 21

22 Obr.6 Vidíte, že máte na výběr ze tří základních možností: aplikace, appletu a prázdného projektu. Kliknutím na políčko aplikace se vám otevře toto okno. V levé oblasti nahoře máte seznam rozdělaných projektů. Obr.7 22

23 Ve spodní části jsou pak funkce používané programem, což se vám bude hodit při kontrole složitějších programů. Ovládání tohoto editoru je intuitivní a nechám na vás jak se s ním seznámíte. 23

24 5.2. Základní schéma programu V této kapitole se dozvíte o: definicích tříd v Javě, o balíčcích a algoritmu programování v Javě. Doba potřebná k prostudování této kapitoly: 15 minut Program v Javě obsahuje jednu nebo více definici třídy. Pouze jedna třída může být deklarována jako public. Tato třída musí nést stejné jméno jako zdrojový soubor (.java) Každá třída je kompilována do samostatného souboru (.class) Binární tvar třídy musí být uložen buď v aktuálním adresáři aplikace, nebo v adresáři shodujícím se jménem balíku (package). Podívejme se jak vypadá takové jednoduché schéma programu. import java.lang.*; import java.io.*; Jako první si definujeme třídy jejichž metody budeme chtít používat. Třída java.lang.* se vynechává protože bývá automaticky včleňována class jmeno.tridy Definice a implementace třídy. Název třídy musí shodný s názvem souboru. public static void main (String args[]) Určení metody, která je součásti importované třídy. System.out.println( ahoj ); Vlastní tělo programu vykonávající nějakou práci Obr.8 24

25 5.3. Práce s objekty V této kapitole se dozvíte o: objektech a o jejich vzniku a zániku.seznámíte se s konstruktory a s metodou jejich odstraňování, povíme si i o odkazování Doba potřebná k prostudování této kapitoly: 30 minut Objekt je inicializován klíčovým operátorem new. Pokud napíšu New = String ( slovo ) vytvoří se objekt třídy String a inicializuje ho konstruktorem s parametrem "slovo". A k čemu to je dobré? String retezec = new String("ahoj"); // vytvoření objektu retezec = retezec.concat("!"); Příklad 5 // volání metody Metoda concat() vrací nový řetězec, který vznikne připojením parametru na konec řetězce. Výsledek se přiřadí do proměnné retezec. Všimněte si spojení retezec.concat Jak bude vypadat výsledný řetězec? Pokud budu chtít tento objekt zrušit musím tomuto objektu přiradit proměnnou null Retezec=null; Kdy se objekt odstraní automaticky? Java neumožňuje přímou prácí s pamětí. Voláním new vyvolám nový objekt, který používám tak dlouho dokud jej potřebuji. O uvolnění paměti se stará proces, který je označován jako garbage colection. V případě že zaniknout všechny odkazy na daný objekt, program to po čase zjistí sám, a objekt zruší. 25

26 V jiných objektově orientovaných jazycích, jsou k dispozici metody, tzv. destruktory, které volají odstranění objektu z paměti. V Javě destruktory neužíváme, a tak nevíme kdy přesně bude náš objekt z paměti odstraněn. Pokud však chceme provést určitou akci ještě před zrušením objektu, můžeme předdefinovat metodu Void finalize(). Program tuto metodu zavolá těsně před odstraněním z paměti Odkazování objektů. Víme z jazyka C co jsou to ukazatelé. V Javě ukazatelé nejsou, ale i tady si velmi rychle pomůžeme díky tzv. odkazování. Odkaz si můžeme představit jako jméno. Jsem člověk(doufám ). Jsem objekt. Jmenuji se David. David je odkaz na člověka(nebudeme o tom polemizovat ) Něco se stane a já dostanu přezdívku. Všichni budou vědět, že jsem to já, i když někteří mě budou znát jen podle přezdívky. Přezdívka působí jako odkaz. Brazina David = new Brazina; Brazina prezdivka = David; Brazina 2.prezdivka = David 2.prezdivka = new Brazina Příklad 6 Teď mě nikdo nezná jako Bražinu, ale jen pod přezdívkou, ačkoliv jsem to pořád já (Bražina). Čili odkazuji se vlastně na jiný objekt, ale ze stejnými vlastnostmi. 26

27 5.4. Třídy a dědičnost V této kapitole se dozvíte o: dědičnostech tříd o jejich atributech a metodách. Dovíte se co musí splňovat každá korektní třída i o tom co znamená import třídy. Zmíníme se i kontrole přístupu. Doba potřebná k prostudování této kapitoly: 60 minut Třída je v Javě základním stavebním prvkem. Veškerý kód i data aplikace musí být obsaženy ve třídách. Každá třída musí být potomkem kořenové třídy Object, takže se vytváří jen jediná stromová struktura. Object je v Javě jediná třída, která nemá předka. Aby se nám to nepletlo můžeme říct, že koupaliště je třída. Termální koupaliště v Červené Lhotě pak je objektem.. Object Třída 1 Třída 2 Třída 3 Třída 4 Třída 5 Třída 6 Obr.9 27

28 Obecná deklarace třídy vypadá takto: [ modifikátor ] class jménotřídy [ extends jménorodičovskétřídy ] [ implements seznamrozhraní ] // tělo třídy Modifikátorem třídy rozumíme klíčové slovo, které nám říká o jaký typ třídy se jedná. Nejčastěji užívanými modifikátory jsou Public Označuje veřejnou třídu, dostupnou i mimo balík Abstrakt Deklarována třída je pouze abstraktní. Final Oznamuje ukončení rodičovského procesu. Nemá další potomky. Static Odkazuje se pouze na svou třídu Void Určuje, že metoda main, nevrací žádnou hodnotu, jako výsledek Mohou následující třídu užít i jiné třídy? A kdy? class MujProgram1 public static void main (String args[]) System.out.println ("Dobry Den!"); Vytvořte z této aplikace applet. Nezapomeňte importovat java.applet.*, java.awt.* System.out.println vám vypíše oznámení na obrazovku. Pro applet použijte funkci, g.drawstring(). Args[] je deklaraci pole typu "String" a přijímá parametry z příkazového řádku. Main je metodou. V další kapitole si o metodách něco povíme. 28

29 Není-li třída veřejná je dostupná pouze ve svém balíku. Podívejme se na příklad abstraktní třídy. Vytvoříme třídu, ve které definujeme, Integer, Boolen, Real a danou třídu nazveme Number. Pokud pak budeme chtít tuto třídu použít, musíme ji zavolat jako Number, ale nevíme jestli budeme pracovat s integrem, nebo boolenem. Tuto třídu tedy deklarujeme jako abstraktní Atributy a metody třídy Atributy třídy popisují data třídy. Jsou deklarovány stejně jako lokální proměnné. Naproti tomu, metody jsou funkce třídy. Definice metody začíná určením typu vracené hodnoty. Pokud funkce (metoda), žádný typ nevrací, označujeme jí jako void. Metody Javy musejí být definovány uvnitř třídy. Třída Javy by měla splňovat následující podmínky: Třída Javy splňuje: Dobře definované API Název třídy by měl být odvozený od její funkce. Mělo by být jasné co třída dělá. Třída by měla obsahovat všechny funkce, které ke své činnosti potřebuje. Pokud tomu tak není mělo by být přesně definováno odkud a které metody přejímáme z jiných tříd. Třída by měla být odolná proti neobvyklým vstupům. 29

30 Import třídy Slovo import umožní aplikaci a appletu využít jíž hotových tříd. Pro vytváření appletů je v Javě vytvořená třída java.applet.applet.*, která definuje třídy webovských nástrojů Javy. Podívejme se na důležité třídy, které můžeme s výhodou importovat Java.applet pro tvorbu webovských appletů Java.awt využívá grafické prostředí Java.io práce se standardními IO zařízeními (myš, klávesnice) Java.lang je automaticky přiřazena, není třeba vypisovat. Java.net přistupuje k sítí Java.util obsahuje různé utility Klíčové slovo import je funkčně shodné s C-vským #include. V čem se od sebe liší import a include? Příklad importu tříd import java.awt.graphics; import java.applet.applet; public class DobryDen extends java.applet.applet public void paint (Graphics g) g.drawstring("dobry Den!", 20, 20); Příklad 7 Obr.10 30

31 Kontrola přístupu Java dovoluje kontrolovat přístup ke třídám pomocí specifikací public a private. Pokud neoznačíme třídu jedním z těchto znaků, říkáme že třída je přátelská. Veřejné třídy a jejich atributy jsou volně dostupné. Privátní atributy jsou dostupné pouze atributům stejné třídy. Možná že se vám zdá, že rozlišování tříd na veřejné a privátní je zbytečná komplikace. Pojďme se na tento případ podívat blíž. Privátní metody jsou myšlené jako pomocné a vykonávají skutečnou práci programu. Díky tomu, že existují pouze v rámci určité třídy, nemůže se nám stát, že by došlo ke kolizi uvnitř programu. Programem může procházet jedna proměnná, která bude nabývat určitých hodnot, lišících se krok od kroku. Díky zprivátnění si můžeme být jistí, že ta daná třída pracuje s hodnotou, která ji přísluší, i když uvnitř nějaké jiné třídy má proměna už hodnotu úplně jinou. 31

32 5.5. Metody V této kapitole se dozvíte o: metodách tříd, zjistíte jakou funkci mají metody uvnitř třídy a jak vznikají objekty. Doba potřebná k prostudování této kapitoly: 15 minut Jak jste si už jistě všimli třída obsahuje celý program. Z toho vyplývá že součástí třídy jsou proměnné, funkce a taky metody. Metoda je vlastně funkce, která se uvnitř třídy volá. Pojďme se podívat na jednoduchý příklad. public class trida1 int i; // mam class trida1 ve kterém definuji proměnnou i public trida1() // priradim promene i hodnotu 3, je to metoda i = 3; public void Pricti(int j) // Pricteni 3 k hodnote j, je to metoda i = i + j Příklad 8 Třída Trida1 obsahuje proměnnou i a dvě metody. První metodou je Trida1() a je konstruktorem třídy (class trida1). Druhou metodou je Pricti(int j). Konstruktor trida1() inicializuje třídu Trida1. Pokud bych chtěl v rámci této třídy vytvořit novou instanci (např. novou funkci, která se nebude odkazovat na hodnotu v Trida1), použiji k tomu příkaz new. Novatrida trida2; Trida2 = new novatrida(); Co je zde konstruktorem? 32

33 5.6. Balíky V této kapitole se dozvíte o: tom jakým způsobem vytvoříme balík příbuzných tříd. Povíme si o vyjímkách v běhu programu. Doba potřebná k prostudování této kapitoly: 30 minut Balík (package), je množina tříd, které logicky patří k sobě. Je to obdoba knihovny a zároveň prostoru jmen z C++. Každá třída patří do jednoho balíku. Buď je pevně daná do kterého, nebo bude patřit do nepojmenovaného balíku. Pamatujete si na hvězdičkovou konvenci? Pokud napíšu import java.awt.*, importuji všechny třídy v balíčku awt. Java umístí každý balíček do vlastního adresáře. Jméno adresáře je shodné se jménem třídy. Tečka se nahrazuje opačným lomítkem. Tedy třídy balíčku awt budou umístěny v adresáři c:\java\awt. Cesty vytvořených tříd nemusí začínat v kořenovém adresáři. Java se dívá na proměnnou prostředí CLASSPATH, podle které hledá požadovaný soubor. CLASSPATH nastavíme tak aby obsahoval všechny adresáře, do kterých umisťujeme naše třídy. 33

34 Tvorba a použití balíčků Každá třída je součásti balíčku. Třída je k balíčku přidaná při překladu. Třída označuje balíček, ke kterému patří použitím klíčového slova package. Někdy je lepší pokud při práci s velkým programem pracujeme s několika na sobě nezávislými třídami, přesto ale potřebujeme, aby v konečném důsledku spolupracovali. K tomu nám slouží známý příkaz import. Pokud chceme mít přístup ke všem třídám balíčku, použijeme syntax import package1.subpackage.*;. Můžeme tedy říct, že třídy jsou kombinovány do shluků označovaných jako balíčky. Java mapuje koncepci balíčků do stromové struktury operačního systému na platformě nezávislým způsobem. Třída Object je nadtřídou všech tříd. Všechny třídy dědí metody z třídy Object. Můžeme tedy říct, že třída Object je balíkem všech tříd. 34

35 Výjimky Výjimka je prostředek, kterým Java detekuje a oznamuje chyby. Výjimka je chybový stav, který přeruší chod programu. Pojďme se podívat na příklad package srd.math; import java.lang.exception; class ComplexNumber private double m_dreal; private double m_dimag; // konstruktory public ComplexNumber(double dr, double di) m_dreal = dr; m_dimag = di; public ComplexNumber(double dr) this(dr, 0.0); // operátor dělení napsaný pro použití výjimek public ComplexNumber Divide(double d) throws Exception if (d == 0) throw new Exception("Pokus o dřlenˇ nulou v ComplexNumber.divide"); return new ComplexNumber(m_dReal / d, m_dimag / d); public String tostring() StringBuffer sb = new StringBuffer(); sb.append('(').append(m_dreal).append(','); sb.append(m_dimag).append(')'); return sb.tostring(); Příklad 9 Pokud je d rovno nule, rovnice nemá řešení. (dělení nulou). Pokud k tomu dojde divide vyvolá výjimku obsahující chybovou zprávu. 35

36 5.7. Výrazy řízení běhu programu V této kapitole se dozvíte: výrazech, které definují jakým způsobem bude program zpracováván. Seznámíte se s jejich syntaxí a způsobem využití. Doba potřebná k prostudování této kapitoly: 45 minut Každý programovací jazyk musíme nějak řídit a přinutit aby dělal to co chceme(i když někdy máme pocit, že si program dělá co chce on a ne my). K tomu slouží výrazy, kterými vlastní běh programu řídíme. Pojďme si je ukázat, ať se můžeme pustit do vlastního bezproblémového programování. 36

37 Komentář Pokud budete programovat složitější aplikaci, nebo applet, jistě vám v určitém okamžiku přijdou vhod komentáře. Díky ním se můžete hravě vyznat i v napohled složitém kódu. Komentáře můžeme uvést více způsoby, podle toho jestli se nám vejde na jeden nebo více řádků. Komentáře uvozujeme do lomítek podobně jako v jazyce C. //komentář /*komentář na více řádcích*/ /** komentáře k dokumentaci**/ Napište program s komentářem k dokumentaci. Ověřte si, funkčnost programu javadoc.exe Identifikátory Identifikátorem rozumíme symbol, kterým prezentujeme proměnnou, třídu, objekt atd. Identifikátorem může být jakýkoli symbol nebo slovo začínající písmenem, podtržítkem nebo označením dolaru $ Literály Literátem rozumíme číselný typ vyjadřující velikost uložení čísla v paměti. V javě používáme typy integer, float, boolean, char a string. Jsou shodné s definicí v C a C++. Není je tedy třeba uvádět. 37

38 Pole Pole deklarujeme z libovolné platné proměnné. I zde platí stejná pravidla jako v jiných programovacích jazycích. int i [] [] = new int [3] [6]; Jak je vidět, v jazyce Java je pole objektem. Délku pole zjistíme funkci length dotazem proměnná.length. S výhodou užijeme zápisu string pole [] = x1, x2,x3; předtím ovšem musíme nadefinovat jakého druhu budou hodnoty polem obsažené. Tedy dle příkladu osm nadefinujeme string pole [] = int [3]. Z toho vyplývá, že výsledné pole bude třímístné a bude obsahovat proměnné typu integer Operátory Tak jako u většiny případů, jsou i operátory Javy velmi blízké operátorům jazyka C. Na rozdíl od jazyka C, Java podporuje operace typu: string1 + string2 =string1string2 38

39 Větveni programu Nejdůležitější vlastnosti všech programovacích jazyků je schopnost vykonat příkaz pokud je splněna jedna podmínka, a zároveň vykonat jiný, pokud je splněná podmínka druhá. Větvení v Javě je (jaké překvapení ) téměř shodné z jazyků C++, C či Pascal. Podívejme se na syntaxi příkazů if, then, else: if (splneno) prikaz; else prikaz; Další z možností jak větvit program je pomoci příkazu switch-case: switch (vyraz1) case hodnota1: prikaz1; break; case hodnota2: prikaz2; break; default: prikaz3; break; 39

40 Smyčky Smyčky jsou cykly, které provádí určitou operaci, která bude ukončená po splnění určité podmínky. Smyčky, které znáte z C, C++ nebo Pascalu, použijete i v Javě. Podívejme se na jejich syntaxi For for (pocatecni hodnota; testovaci podminka; prirustek) prikaz; While while (vyraz je pravdivy) prikaz; Do do prikaz; while (vyraz je pravdivy); 40

41 5.8. Vstup a výstup V této kapitole se dozvíte: jakým způsobem se zpracovávají vstupní parametry zadané z klávesnice. Budete je umět snímat do programu a zpracovávat jejich výstup. Poznáte také jak načítat ze souboru a ukládat do souboru. Doba potřebná k prostudování této kapitoly: 75 minut Veškeré operace vstupu a výstupu z klávesnice má na starosti balíček java.io. Charakteristickým rysem celé Javy je skládání jedné třídy ke druhé. Tak je tomu i v tomto případě. Java se nesnaží obsáhnout jednou třídou veškeré možnosti, protože je pravděpodobné, že všechny schopnosti potřebovat nebudete. Pokud potřebujete provést operaci, která aktuální třídou není podporovaná, jednoduše ji přiřadíte. Výhody jsou nasnadě. Podívejme se jakým způsobem zpracováváme vstupní a výstupní operace. Během našeho povídání jsme se už setkali s třídou Systém. Pamatujete si jakým způsobem třída system posílala výstup na monitor? system.out.println( Dobry den ); Vedle toho tato třída obsahuje prvky system.in standardní vstup system.err - chybový výstup Podívejme se na to jak se tyto metody používají. 41

42 import java.io.*; public class vstupvystup public static void main(string[] args) try // zkusíme číst z klávesnice byte barray[] = new byte[128]; System.out.println("Neco napiste:"); // Tento příkaz cte pole bajtů System.in.read(bArray); // výstup pole bajtů - toto generuje // vlastní výsledek System.out.print("Napsal jste:"); System.out.println(bArray); // co se s tim vlastne ma delat? Class cinclass = System.in.getClass(); Class coutclass= System.out.getClass(); System.out.println("in je " + cinclass.tostring()); System.out.println("out je " + coutclass.tostring()); catch(ioexception ioe) System.out.println(ioe.toString()); ioe.printstacktrace(); Příklad 10 Obr.11 Proč je výstup tohoto programu zmatený? 42

43 import java.io.*; public class vstupvystup2 public static void main(string[] args) try // zkusíme číst z klávesnice byte barray[] = new byte[128]; System.out.println("Neco napiste:"); // Tento příkaz čte pole bajtů System.in.read(bArray); // zkonvertuje pole na řetězec před tím, než se // jej pokusí zobrazit String s = new String(bArray, 0); System.out.println(s); catch(ioexception ioe) System.out.println(ioe.toString()); ioe.printstacktrace(); Příklad 10 Nyní už je výstup v pořádku. 43

44 Práce se soubory Požadavky na práci se soubory jsou jasné. Potřebujeme vědět jak do souboru můžeme něco uložit resp. jak ze souboru něco vytěžit. Pokud chceme soubor otevřít a něco do něj uložit, využijeme třídu FileInputStream. Pokud naopak chceme soubor otevřít a něco z něj dostat využijeme třídu FileOutputStream. Podívejme se na následující program. Ten načte dvě jména souboru jako parametry a potom zkopíruje obsah prvního souboru do druhého. import java.io.*; public class soubor public static void main(string[] args) try // otevře args[0] pro vstup FileInputStream in = new FileInputStream(args[0]); // přidá tomuto proudu vyrovnávací paměť BufferedInputStream bin = new BufferedInputStream(in); // otevře args[1] pro výstup a také přidá // vyrovnávací paměť FileOutputStream out = new FileOutputStream(args[1]); BufferedOutputStream bout = new BufferedOutputStream(out); // nyní čte tak dlouho, dokud je co číst byte barray[] = new byte[256]; int nbytesread; while(bin.available() > 0) // přečte blok - pamatuje si, kolik přečetl nbytesread = bin.read(barray); // zapíše stejně tolik znaků zpět od // indexu 0 do pole bout.write(barray, 0, nbytesread); bout.flush(); catch(ioexception ioe) System.out.println(ioe.toString()); Příklad 12 44

45 Program otevře vstupní soubor třídou FileInputStream. Program pak zabalí objekt in třídy FileInputStream do objektu třídy BufferedFileInputStream, který označuje bin. Program opakuje proces s druhým argumentem pro výstupní soubor, čímž vytvoří objekt bout třídy BufferedoutputFile. 45

46 Podívejte se na následující program a ověřte jeho funkčnost import java.io.*; public class FileIO public static void main(string[] args) try // použije normální vstupní proud FileInputStream in = new FileInputStream(args[0]); BufferedInputStream bin = new BufferedInputStream(in); // vytvoří výstupní proud s vyrovnávací pamětí FileOutputStream out = new FileOutputStream(args[1]); BufferedOutputStream bout = new BufferedOutputStream(out); PrintStream pout = new PrintStream(bout); // čte osm znaků najednou byte barray[] = new byte[8]; int nbytesread; while(bin.available() > 0) // nejprve je vypíše jako hexadecimální číslo nbytesread = bin.read(barray); for (int i = 0; i < nbytesread; i++) int nbyte = (int)barray[i]; String s = Integer.toString(nByte, 16); if (s.length() == 1) pout.print(" "); pout.print(s + ", "); // potom, pokud jsou tisknutelné, vypíše // příslušný znak (pokud ne, vypíše tečku ".") pout.print("-"); for (int i = 0; i < nbytesread; i++) char c = (char)barray[i]; if (Character.isDigit(c) Character.isLowerCase(c) Character.isUpperCase(c)) 46

47 // podrží si c - nic nedělá else c = '.'; // nahradí c tečkou pout.print(c); pout.println(" "); bout.flush(); catch(ioexception ioe) System.out.println(ioe.toString()); Příklad

48 5.9. Zpracováni vstupu a výstupu myši V této kapitole se dozvíte: jakým způsobem se zpracovávají události myši Doba potřebná k prostudování této kapitoly: 30 minut Vedle zpracování vstupu a výstupu ze standardních vstupních a výstupních zařízení, je velmi užitečnou vlastnosti Javy spolupracovat s myši prostřednictvím zpracování události (events). Nejběžnější události u myši je kliknutí. Ke zpracování používá Java metody mousedown()a mouseup(). Obě tyto metody jsou součásti balíku třídy java.awt.component. public boolean mousedown (Event e, int x, int y) /* tlacitko mysi stlaceno dolu, pozice na obrazovce je reprezentovana souradnicemi x a y */ /* nasleduje zpracovani teto udalosti */ public boolean mouseup (Event e, int x, int y) /* tlacitko mysi uvolneno, pozice na obrazovce je reprezentovana souradnicemi x a y */ /* nasleduje zpracovani teto udalosti */ 48

49 Následující applet tiskne text Dobry den v místě kde se nachází kurzor myši v okamžiku kliknutí se nachází. import java.awt.graphics; import java.awt.event; import java.applet.applet; public class klikmys extends Applet int Sour_X = 30; int Sour_Y = 30; public void paint (Graphics g) g.drawstring("dobry Den", Sour_X, Sour_Y); public boolean mousedown (Event e, int x, int y) Sour_X = x; Sour_Y = y; repaint(); return true; Příklad 14 Dvojklikem zde, zobrazíte originální stránku 49

50 5.10. Síťové programování v prostředí TCP/IP V této kapitole se dozvíte: o základech síťového programování, setkáte se s pojmy jako je socket, a prostředky balíku java.net. Doba potřebná k prostudování této kapitoly: 45 minut Programování v prostředí TCP/IP využívá tzv. socketů, což jsou koncové body komunikačních linek mezi procesy charakterizované IP adresou a portem. Sockety nejsou specifickou záležitosti Javy, ale jsou všeobecným základem síťového programování pro TCP/IP. V jazyce Java lze TCP/IP spojení navázat za použití knihovny třídy java.net a to jak pro datové přenosy TCP, tak i UDP. Spojení popíšeme takto: Server je spuštěn na předem určeném portu a čeká na klientsky program, aby navázal spojeni. Jakmile si klient toto spojeni vyžádá, server otevře socketové spojeni prostřednictvím metody accept(). klient rovněž založí spojeni se serverem na dané IP adrese a určitém portu. 50

51 Obě strany pak komunikuji prostřednictvím metod InputStream() a OutputStream(). Použití základních principu implementace serveru v Javě ukazuje následující příklad. ServerSocket srvsocket; Socket sckt; String sendstr = "Data ze serveru.\n"; int delka; OutputStream outstr; srvsocket = new ServerSocket(8888,300); // server je pripojen na // port 8888, ceka 300 sekund // na zavolani klienta sckt = srvsocket.accept(); // server ceka na pripojeni outstr = sckt.getoutputstream(); // ziska identifikaci socketoveho // souboru delka = sendstr.length(); for (int i=0; i < delka; i++) outstr.write((int)outstr.charat(i)); // delka zasilanych dat // posila data po jednom byte sckt.close(); // ukonci spojeni Klientský program pak principiálně může vypadat takto: int c; Socket sckt; InputStream instr; // klientsky program sckt = new Socket("javaserv",8888); // otevre spojeni s pocitacem // javaserv, na portu 8888 instr = sckt.getinputstream(); // ziska identifikaci socketoveho // souboru while ((c = instr.read())!= -1 // cte jeden byte prichazejici // ze serveru System.out.println((char)c); sckt.close(); Příklad 15 // tiskne prijaty byte na vystup // uzavre spojeni Jak je vidět, tak na straně serveru je to třída ServerSocket a na straně klienta třída Socket, které zajišťuji, že implementace je velmi jednoduchá a přehledná. Pokud se chystáte k vývoji přenosných aplikaci v prostředí TCP/IP, pak podrobnější studium knihovny třídy java.net je zcela na miste. 51

52 6. Test č.1 V této kapitole se dozvíte: Jakým způsobem budete zpracovávat test pro ukončení první poloviny semestru. Doba potřebná k prostudování této kapitoly: 5 minut Doba potřebná k vypracování testu: 90 minut Zakončením první poloviny tohoto kurzu je test, ve kterém by jste měli potvrdit své vědomosti. Pro jeho úspěšné vykonání musíte odpovědět alespoň na polovinu otázek. Zadaný program musíte vytvořit tak, aby byla funkční alespoň jeho jedna polovina. Test najede kliknutím na obrázek. TEST Jako jméno zadejte své příjmení, jako heslo vaše jméno

53 TEST č.1 - XJAV1 - OOP pro Internet a Intranet Používáte prohlížeč Microsoft Internet Explorer 4.0 (compatible; MSIE 5.01; Windows NT 5.0) Pro správné zobrazení češtiny použijte kódování: Středoevropské jazyky Windows Jadro: Win32 Rozlišení: 1024 x 768 Barevná hloubka: 16 bit Java povolena?: ANO Anti-aliasing?: NE Uživatelské jméno: Heslo: 1.Otázka Jakým příkazem připojíte třidu A include B import C load 2.Otázka Jak se nazývá způsob odstraňujicí objekty? A destruktor B garbage colection C neodstraňuji se 3.Otázka Hvězdička znamená A import všech tříd balíčku B import všech funkcí třídy C import všech metod funkce 53

54 4.Otázka Jak se jmenuje základní knihovna Javy, která musí být vždy importována A java.io B java.awt C java.lang 5.Otázka Popište v jakých krocích vytvoříte a následně spustíte aplikaci vytvořenou v Javě. 6.Otázka Co si představujete pod pojmem JAVA VIRTUAL MACHINE? 7.Otázka Popište rozdíl mezi třídou a metodou, uveďte alespoň dva příklady 54

55 8.Otázka Vytvořte libovolný program, ve kterém použijete konstruktory. Program popište a zajistěte odstranění objektu (popište funkci finalizéru) Zdrojovy kod zadaneho programu v jazyce JAVA 9.Otázka Vytvořte program, který přečte z klávesnice tři čísla, seřadí je od nejvetšího do nejmenšího, vytiskne je v tomto pořadí, vytiskne jejich součin a převrácenou hodnotu každého z těchto čísel. Ošetřete případ dělení nulou. Dále převeďte součet těchto čísel do binárního tvaru. Zdrojovy kod zadaneho programu v jazyce JAVA Doporučení Na toto místo napište své jméno a ovou adresu Jmeno Prijmeni Potvrdit-Odeslat Smazat-Znovu 55

56 7. Vývojové prostředí Javy - Applety V této kapitole se dozvíte: o editorech umožňující programování appletů. Doba potřebná k prostudování této kapitoly: 45 minut Programovat applety můžete pod libovolným textovým editorem jako je například např. notepad či joe (Linux). Přesto je lepší vytvářet applety pod kvalitním nástrojem který umožňuje tvorbu HTML stránek. Nejvhodnějším v tomto směru se mi zdá tzv. HTML-Kit od společnosti Chami, který si můžete stáhnout zde. Obr.12 Ovládání tohoto produktu je intuitivní, a nechám na vás ať se s ním seznámíte. 56

57 7.1. Práce s textem a grafikou V této kapitole se dozvíte: čeho se vyvarovat při tvorbě webovské stránky, naučíte se pracovat s technickými vlastnostmi textu. Doba potřebná k prostudování této kapitoly: 45 minut Pokud jste se přenesli přes minulé kapitoly bez problémů, ujišťují vás, že zbytek už půjde hladce. Od této chvíle se budeme věnovat vlastní práci s dynamickými možnostmi Javy. Budeme se soustředit na vytváření appletů a jejich umístění na webovské stránky. Když otvíráme webovskou stránku, první čeho se dočkáme jsou slova. Tvar barva a rozmístění slov rozhodne o tom jestli vůbec budeme čekat na to, až se stránka načte celá. První věc, kterou bychom si měli říct je, že v jednoduchosti je síla. Stránka, která bude přecpaná grafikou, různými scripty, applety, blikajícím pozadím a bůhví čím ještě, se jednak bude pomalu načítat, a jednak naštve případného návštěvníka, protože si uvědomí jak ho bolí od toho počítače oči. 57

58 Vložení textu Pokud budeme chtít něco vytisknout na monitor počítače, viděli jsme, že k tomu použijeme metodu system.out.println(). Pokud budeme pracovat s appletem jako výstup použijeme metodu g.drawstring. public void paint(graphics g) g.drawstring( Neco zvlastniho, 20, 20); Jak je vidět metodu drawstring( string, X, Y); deklarujeme tak, že nejprve napíšeme řetězec a za něj souřadnice textu. Tuto metodu můžete používat pokud inicializujete třídu Applet, která zajišťuje všechny podpůrné třídy pro tvorby appletů. Podívejme se na ni: - init() je spuštěna pouze jednou během zaváděni appletu. Pokud není redefinovaná uživatelem, nevykonává žádnou funkci. - start() začíná běh appletu. Tato metoda sama o sobe nevykonává žádnou funkci. Odvozenou metodu lze použít k započetí animací, přehrávek zvuku apod. - stop() konci běh appletu. Metoda je spouštěna, když applet již není na obrazovce. Tato metoda sama o sobe nevykonává žádnou funkci. Odvozenou metodu lze použít k zastaveni animace, přehrávky zvuku apod. - destroy() tato metoda je k dispozici k použití, jestliže applet již není nadále potřeba. Sama o sobe nevykonává žádnou funkci. Odvozena metoda je vhodná k závěrečnému ošetření appletu, jako např. u multitaskových aplikaci k zastaveni všech aktivních úloh. - paint(graphics g) tato funkce je spoustena vždy, když zobrazovací oblast apletu potřebuje znovuzobrazení (refresh) výstupu. Základní metoda třídy Applet pouze zobrazí šedý rovnoběžník v oblasti grafického výstupu appletu. Odvozena metoda je využívána k grafickému výstupu zobrazované informace (text, grafika atd.) Povšimněte si odvozené metody v našem prvním apletu, kdy jsme redefinovali tuto metodu tak, aby vypsala text "Dobry den!". -update(graphics g) tato metoda je použitá vždy, když je třeba aktualizace zobrazené oblasti. Základní metoda třídy Applet smaže vše co je zobrazeno v dané grafické oblasti apletu a pak spustí metodu "paint". 58

59 Typy písma Teď, když víme jak zobrazit zprávu v rámci appletu, podíváme se jak můžeme ovlivnit tvar písma. Pokud žádné písmo nedefinujeme, pak se text vypisuje standardním typem písma, které je označováno jako dialog. Pokud chcete zvolit jiné písmo než standartní, musíme vytvořit objekt Font. Font f = new Font ( typ pisma, Font.PLAIN, 12); Font.PLAIN určuje velikost fontu. Typem písma se rozumí o jaký normativ se jedná. Standardními písmy Javy jsou. Courier, Dialog, Helvetica, TimesRoman, DialogInput, a pismo pro zvláštní znaky ZapDingBats. Podívejme se na inicializaci nového fontu v následujícím příkladu Public void paint (Graphics g) Font f = new Font ( Helvetica, Font.PLAIN, 10); g.setfont(f); Vytvořte applet, který zobrazí alespoň tři typy fontů na stránce. 59

60 Barva písma Tak jako jsme typ písma určovali metodou Font tak barvu volíme metodou Color. Public void paint (Graphics g) g.setcolor(color.blue); //Dokud nenastavim barvu jinak budou vsechny texty modre g.drawstring( Je to psane modrym pismem ); Java obsahuje standardní barvy podobně jako Pascal nebo C++, proto je nebudu vypisovat. Pokud vaše nároky na barvu budou větší, můžete si vlastní nádech namíchat podobně jako když ladíte televizi, kombinací červené, zelené a modré. Barvy zadáváte v rozsahu (0 až 255). Public void paint (Graphics g) Color barva = new Color (255,0,0); g.setcolor(barva); g.drawstring( Cervena barva, 10, 10); Pokud jsme puntičkáři můžeme si dokonce volit i mezi jasem, metodou brighter a darker. 60

Java aplety. Předávání parametrů z HTML

Java aplety. Předávání parametrů z HTML Java aplety Aplety jsou speciální formou Java aplikací - mohou být spouštěny z prostředí WWW prohlížeče. Aby je prohlížeč spustil, musíme vložit do HTML stránky potřebné příkazy:

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

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

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

Ú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

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

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

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

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

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

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

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

Ú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

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

Soubor jako posloupnost bytů

Soubor jako posloupnost bytů Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení

Více

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.

Více

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9) Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon

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

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

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro

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

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

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

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

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

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

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce

Více

Práce se soubory v Javě

Práce se soubory v Javě Práce se soubory v Javě Cílem kapitoly je naučit pracovat se soubory a adresáři v Javě. Na jednoduchých příkladech ukázat procházení adresáře, čtení z textového souboru a zápis do textového souboru. Klíčové

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

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

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

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

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

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

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

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz Vaše jistota na trhu IT Balíčky Rudolf Pecinovský rudolf@pecinovsky.cz Problémy velkých aplikací Rozsáhlé aplikace používají velké množství názvů objektů a jejich zpráv, které různé části programu sdílí

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

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

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

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

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

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

Překladač a jeho struktura

Překladač a jeho struktura Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice

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

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni! Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

Projekt Obrázek strana 135

Projekt Obrázek strana 135 Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy

Více

ČÁST 1. Základy 32bitového programování ve Windows

ČÁST 1. Základy 32bitového programování ve Windows Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25

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

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

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

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

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

KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KLÍČOVÉ POJMY Internet World Wide Web FTP, fulltext e-mail, IP adresa webový prohlížeč a vyhledávač CÍLE KAPITOLY Pochopit, co je Internet

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 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

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

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

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

1 Uživatelská dokumentace

1 Uživatelská dokumentace 1 Uživatelská dokumentace Systém pro závodění aut řízených umělou inteligencí je zaměřen na závodění aut v prostředí internetu. Kromě toho umožňuje testovat jednotlivé řidiče bez nutnosti vytvářet závod

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

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

Programujeme v softwaru Statistica

Programujeme v softwaru Statistica Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica.

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

8. přednáška: Soubory a proudy

8. přednáška: Soubory a proudy 8. přednáška: Soubory a proudy Soubor jako posloupnost bytů Ukládání/čtení primitivních typů Ukládání/čtení primitivních typů a objektů (řetězců) Ukládání/čtení objektů do souboru - serializace Obsah Algoritmizace

Více

6. PRÁCE S DATOVÝMI PROUDY

6. PRÁCE S DATOVÝMI PROUDY 6. PRÁCE S DATOVÝMI PROUDY Balík java.io obsahuje třídy, které slouží pro zpracování datových výstupů a vstupů. Pro obvyklou práci se soubory zde můžeme najít třídy File a RandomAccessFile. Většina tříd

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

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

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

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

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

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

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky JAVA Třídy Definice třídy úplná definice [public] [abstract] [final] class Jmeno [extends Predek] [impelements SeznamInterfacu] {... // telo tridy public veřejná třída abstract nesmí být vytvářeny instance

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

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník 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 Abstraktní datové typy omezené rozhraní

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

Ú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

Virtuální metody - polymorfizmus

Virtuální metody - polymorfizmus - polymorfizmus - potomka lze použít v místě, kde je možné použít předka - v dosud probraných situacích byly vždy volány funkce, které jsou známy již v době překladu. V situaci, kdy v době překladu není

Více

Popis programu EnicomD

Popis programu EnicomD Popis programu EnicomD Pomocí programu ENICOM D lze konfigurovat výstup RS 232 přijímačů Rx1 DIN/DATA a Rx1 DATA (přidělovat textové řetězce k jednotlivým vysílačům resp. tlačítkům a nastavovat parametry

Více

Reliance 3 design OBSAH

Reliance 3 design OBSAH Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních

Více

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ 4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ OBJEKT Program v Javě je staticky strukturován na třídy, jejichž instance (objekty) za běhu dynamicky programu vznikají a zanikají. Objekt je nejprve

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

15. Projekt Kalkulačka

15. Projekt Kalkulačka Projekt Kalkulačka strana 143 15. Projekt Kalkulačka 15.1. Základní popis, zadání úkolu Pracujeme na projektu Kalkulačka, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

První kroky s METEL IEC IDE

První kroky s METEL IEC IDE První kroky s poskytuje programování v IEC 61131-3 jazycích, podporuje jak grafickou tak textovou podobu. Umožňuje vytvářet, upravovat a ladit IEC 61131-3 (ST, LD, IL, FBD) programy pro řídicí jednotky

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

01. HODINA. 1.1 Spuštění programu VB 2010. 1.2 Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

01. HODINA. 1.1 Spuštění programu VB 2010. 1.2 Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start. 01. HODINA 1.1 Spuštění programu VB 2010 - pomocí ikony, z menu Start. - po spuštění si můžeme vybrat, zda chceme vytvořit nový Projekt a jaký nebo zda chceme otevřít již existující Projekt. 1.2 Prvky

Více

Obslužný software. PAP ISO 9001

Obslužný software.  PAP ISO 9001 Obslužný software PAP www.apoelmos.cz ISO 9001 červen 2008, TD-U-19-20 OBSAH 1 Úvod... 4 2 Pokyny pro instalaci... 4 2.1 Požadavky na hardware...4 2.2 Postup při instalaci...4 3 Popis software... 5 3.1

Více

22. Tvorba webových stránek

22. Tvorba webových stránek 22. Tvorba webových stránek Webové stránky jsou spolu s elektronickou poštou nejpoužívanější prostředky internetu. Brouzdáme li internetem používáme nějaký prohlížeč. To, co vidíme na obrazovce v prohlížeči

Více

Programování v C++ 1, 6. cvičení

Programování v C++ 1, 6. cvičení Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

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

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