Package balíček z pohledu UML

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

Download "Package balíček z pohledu UML"

Transkript

1 OOPR_07 1

2 Obsah přednášky Balíčky (package) z pohledu UML Balíčky v Javě a příkaz import JAR soubory a samostatná aplikace Ladění programů debugger Jednoduché programy s grafikou 2

3 Package balíček z pohledu UML Balíček je abstrakce sdružování je to kontejner a vlastník modelovaných elementů. Každý balíček má vlastní jmenný prostor namespace uvnitř něhož musí být všechny názvy jedinečné. né. Většinou se jedná o názvy tříd a podtříd. Balíček je univerzálním mechanismem uspořádání elementů do skupin. 3

4 Package balíček z pohledu UML Pomocí mechanismu balíčků lze realizovat následující úkoly: Seskupovat sémanticky (významově) související prvky (třídy) Definovat sémantické hranice uvnitř modelu. Vytvářet jednotky správy konfigurace. V etapě návrhu poskytují balíčky jednotky pro souběžnou práci. Balíčky poskytují zapouzdřený jmenný prostor, v němž musí být všechny názvy jedinečné. 4

5 Grafická reprezentace balíčku v UML Balíčky vytvářejí hranice, jež ohraničují prostor, v němž musí být všechny názvy jedinečné. Jmenné prostory vytvářejí důležitý sémantický rozdíl mezi závislostmi typu <<import>> a <<access>>. Oba uvedené stereotypy umožňují klientským prvkům přístup k exportovaným prvkům dodavatelského balíčku, liší se však sémantikou. <<access>> <<import>> Balíček1 Balíček2 Balíček3 5

6 Stereotyp v UML Stereotyp zastupuje určitou variantu existujícího prvku v datovém modelu, který má sice stejnou podobu (atributy a relace), ale používá se s jiným záměrem. Stereotyp umožňuje uje vytvářet nové prvky modelu založené na existujících prvcích. Název stereotypu se ukládá do dvojitých závorek << >> a připojuje k novému prvku. 6

7 Závislost balíčků Balíčky mohou být vytvářeny v hierarchii, podobně jako adresáře souborů. Veřejným prvkům (public) balíčku říkáme exportované prvky (mohou být používány prvky jiných balíčků). Soukromé prvky (private) balíčků nemohou být používány prvky jiných balíčků. 7

8 Package balíček z pohledu UML stereotyp <<import>> Závislost stereotypu <<import>> znamená, že jmenný prostor dodavatele je sloučen se jmenným prostorem klienta. Znamená to, že klientské prvky se mohou na dodavatelské (knihovní) prvky odkazovat pouze názvem cílového prvku, nemusí uvádět cestu k němu. Závislost stereotypu <<import>> je nejčastěji používaným typem závislosti navzdory tomu, že může vést ke kolizím kvůli nezamýšlené duplicitě názvů. 8

9 Package balíček z pohledu UML stereotyp <<access>> Závislost typu <<access>> znamená, že prvky klientského balíčku mohou přistupovat k veřejným prvkům dodavatelského balíčku, aniž by přitom došlo ke sloučení jmenných prostorů. Klientské prvky mohou používat dodavatelské prvky, musí však použít také cestu k danému prvku. 9

10 Balíčky v Javě Balíčkem se nazývá to, co můžeme získat, použitím klíčového slova import k importu celé knihovny např.: import java.util.*; příkaz připojuje k projektu celou knihovnu nástrojů balíčku java, podbalíčku util při vytváření vlastního balíčku musí být v daném souboru první příkaz package s názvem balíčku např.: package balicek1; 10

11 Balíčky uživatelský pohled Java umožňuje sdružovat skupiny tříd do hierarchicky uspořádaných balíčků (packages). Konvence: zdrojové soubory tříd patřících do společného balíčku se ukládají do stejného adresáře (stejné složky) Překladač uspořádá stejným způsobem i přeložené soubory Zdrojové a přeložené soubory nemusí být ve stejné složce (BlueJ umisťuje zdrojové soubory *.java i přeložené soubory *.class do stejné složky) 11

12 Balíčky označování (notace) Názvy hierarchických balíčků jsou odděleny. (tečkou) např. import java.util.date; import příkaz pro začlenění balíčku do aplikace, před tímto příkazem může být pouze příkaz package (viz dále) java balíček s názvem java util podbalíček balíčku java Calendar název importované třídy deklarace objektů s příkazem import: Calendar dnes; // pouze kvalifikace, bez konstruktoru 12

13 Balíčky označování (notace) deklarace objektů bez příkazu import: java.util.calendar dnes; balíčky jsou užitečné pro seskupování (agregaci) příbuzných tříd 13

14 Balíčky význam pomáhají odstranit konflikt jmen (názvů tříd) tím, že jméno třídy je jako přípona k názvům balíčků, které jsou první např. plné jméno třídy Calendar je: java.util.calendar např. java.awt (Abstract Window Toolkid) obsahuje třídu List a java.util má rozhraní List class Priklad { java.awt.list list1; // List gui java.util.list list2; // abstraktní List namespace prostor jmen (používají jiné systémy) 14

15 Balíčky - vytvoření Třída patřící do daného balíčku musí začínat příkazem: package název_balíčku; název_balíčku musí být stejný jako název složky (podadresáře) e) v níž je soubor umístěn názvy balíčků: písmena, číslice a znaky _ a $ nesmějí být shodné s klíčovým slovem, nesmějí začínat číslicí podle konvence pouze malá písmena nabídka Edit \ New package při deklaraci se balíčky vnořují do sebe 15

16 package cviceni; Poznámky public class Prepravka { public int extrem; public int index; public Prepravka() { extrem=0; index = 0; } public Prepravka(int extrem, int index) { this.extrem = extrem; this.index = index; } public void setprepravka(int prvni, int druhy) { extrem = prvni; index = druhy; } public String tostring() { return String.format("%s: %d\n%s: %d","extrem",extrem,"index",index); } public int getextrem() { return extrem; } } public int getindex() { return index; } 16

17 package cviceni; public class Register { private int pole[]; private int top; // konstruktor public Register(int pocet) { pole = new int[pocet]; top = -1; } } Poznámky Třída Register, Třída RegisterTestP import cviceni.register; import cviceni.prepravka;// import cviceni.* public class RegisterTestP { public static void main(string args[]) { Register a = new Register(5); a.vlozit(10); a.vlozit(15); a.vlozit(-44); a.tisk(); a.odstranit(15); a.tisk(); Prepravka p; p = a.minimum(); System.out.println("Minimalni prvek registru: " + p); } } System.out.println("getPrvek 15"); int b= a.getprvek(15); 17

18 18

19 package prvni.druhy.ctvrty.paty; Poznámky import javax.swing.joptionpane; // Class static pomocna trida slouzici jako schranka pro staticke metody public class Cs { } package prvni.druhy.ctvrty; import prvni.druhy.ctvrty.paty.cs; import prvni.druhy.ctvrty.paty.pom; public class Citac { } package prvni.druhy; // java první.druhy.citactest //package druhy; import prvni.druhy.ctvrty.citac; public class CitacTest { } import prvni.druhy.ctvrty.citac; // java CitacTest public class CitacTest { } 19

20 Konvence pojmenování balíčků Problém tvoření jedinečných jmen balíčků ať se nacházejí kdekoli. Použití internetových jmen domén za tímto účelem, protože ta garantují, že budou jedinečná ná a proto nikdy nenastane kolize. Internetová jména domén se používají v obráceném pořadí např. com.bruceeckel... cz.osu.... //a název skutečných balíčků 20

21 Proměnná prostředí CLASSPATH Javovský interpret (java OsobaTest) postupuje následovně: nejdříve vyhledá proměnnou CLASSPATH, která obsahuje jeden nebo více adresářů, které jsou použity jako kořenové adresáře pro vyhledávání.class souborů. interpret začne v uvedeném kořenovém adresáři a vezme jméno balíčku a nahradí tečky \ např. balíček foo.bar.baz bude převeden na: foo\bar\baz (v Unixu / ) 21

22 22

23 package com.bruceeckel.simple; //cz.osu.simple; Poznámky public class Vector { public Vector() { System.out.println("com.bruceeckel.simple.Vector"); } } package com.bruceeckel.simple; //cz.osu.simple; public class List { public List() { System.out.println("com.bruceeckel.simple.List"); } } 23

24 Konflikty názvů import dvou knihoven, které obě používají název Vector import com.bruceeckel.simple.*; import java.util.*; konflikt: Vector v = new Vector(); musíme tedy použít celý název a napsat buď: java.util.vector v = new java.util.vector(); nebo com.bruceeckel.simple.vector v = new com.bruceeckel.simple.vector(); 24

25 Proměná prostředí CLASSPATH Pokud jsou soubory uloženy v uvedených podadresářích: C:\doc\JavaT\com\bruceeckel\simple CLASSPATH=.;C:\doc\JavaT Pro JAR soubory platí odlišnost, a to že je třeba uvést také i jméno JAR souboru, ne pouze cestu! CLASSPATH=.;d:\data\mujJAR.jar od verze Java 2 je možné program překládat a spouštět bez nastavené proměnné prostředí CLASSPATH 25

26 Javovské API pakety - balíčky Application Programming Interface Java obsahuje mnoho předdefinovaných tříd, které jsou seskupeny do tzv. balíčků, paketů (packages) deklarace import specifikuje, že program např. používá třídu Scanner z paketu (balíčku) java.utils import java.util.scanner; přehled předdefinovaných balíčků (paketů) je uveden v následující tabulce 26

27 Javovské API pakety (balíčky) Paket - balíček java.applet java.awt java.awt.eve nt Popis funkcí Balíček obsahuje několik rozhraní požadovaných Javovskými aplety. Aplet je program schopný běžet ve webovském prohlížeči. Java Abstract Window Toolkid Package obsahuje třídy a rozhraní nutné pro práci v grafickém uživatelském rozhraní Javy (GUI) Ve stávající verzi Javy se spíše využívá javax.swing balíček Java Abstract Window Toolkid Event Package obsahuje třídy a rozhraní, které umožňují zpracování událostí pro komponenty GUI patřící pod java.awt 27

28 Javovské API pakety (balíčky) Paket - balíček java.io java.lang java.net Popis funkcí Java Input Output Package obsahuje třídy a rozhraní, které programy používají pro vstupně výstupní operace Java Language Package obsahuje základní třídy a rozhraní potřebné pro tvorbu javovské aplikace. Tento balíček je importován překladačem implicitně. Java Networking Package obsahuje třídy a rozhraní, které umožní programům komunikovat přes síť počítačů 28

29 Javovské API pakety (balíčky) Paket - balíček java.text java.util Popis funkcí Java Text Package obsahuje třídy a rozhraní, které umožňují aplikacím manipulovat s čísly, datumy a znaky jako s řetězci. Umožňuje lokalizaci programů specifické nastavení Java Utilities Package obsahuje pomocné třídy a rozhraní, které umožňují: manipulace s časem a datumem práce s náhodnými čísly ukládání a zpracování rozsáhlých dat rozdělení řetězců na menší části - token 29

30 Javovské API pakety (balíčky) Paket - balíček Popis funkcí javax.swing Java Swing GUI Components Package - obsahuje třídy a rozhraní, které podporují portovatelné (portable) GUI. javax.swing.eve nt Java Swing Event Package obsahuje třídy a rozhraní, které umožňují zpracování událostí pro GUI komponentu balíčku java.swing 30

31 Balíčky problémy (námitky) při vytvoření nového balíčku určuje jeho název implicitně také adresářovou strukturu balíček musí existovat ve složce určené názvem složka musí existovat na místě, aby jí bylo možné nají na základě hodnoty uložené v proměnné CLASSPATH 31

32 Java Archives Files JAR Files JAR formát je zip formát použitý na skupinu souborů, jenž je spakovaná do jednoho.jar souboru. JAR soubory jsou nezávislé na platformě stejně jako Java. JAR soubory jsou zejména výhodné při stahování z webu, protože stáhneme jeden, v němž jsou ostatní soubory spakovány. Soubor ve formátu.jar je jeden soubor obsahující kolekci zazipovaných souborů spolu se souborem manifest, který je popisuje. 32

33 Java Archives Files JAR Files explicitní vyvolání utility jar jar [volby] destination [manifest] inputfile(s) volby jsou skupiny písmen jejich význam je v následující tabulce 33

34 Význam voleb v utilitě jar Volba c t x x file f m Význam Vytváří nový, nebo prázdný archiv (v případě použití jména existujícího archivu) Vrátí tabulku obsahu Extrahuje všechny zazipované soubory Extrahuje pouze uvedený soubor specifikace souboru není-li uvedeno předpoklad stand. vstup, nebo stand. výstup (konzola) Říká, že první argument bude jméno uživatelem vytvořeného souboru manifest v Vytváří komentovaný výstup, popisující co děla jar soubor (upovídaná varianta) 0 Pouze ukládá soubory, neprovádí kompresi. Využití pro uložení souborů do classpath. Rychlejší přístup nula. M Nevytváří automaticky soubor manifest. 34

35 Základní operace se souborem JAR Operace Vytvoření JAR souboru Příkaz jar cf jar-file input-file(s) Prohlédnutí obsahu JAR souboru Extrahování obsahu JAR souboru Extrahování specifikovaných souborů z JAR souboru Spuštění aplikace spakované jako JAR soubor jar tf jar-file jar xf jar-file jar xf jar-file archived-file(s) java jar app.jar 35

36 Práce s JAR soubory Pokud soubory, které se mají uložit do JAR souboru obsahují podadresáře, jsou tyto podadresáře automaticky přidány do JAR souboru, spolu s informací o cestě Typický příklad: jar cf mujjarfile.jar *.class příkaz vytvoří JAR soubor mujjarfile, který obsahuje všechny.class soubory spolu se souborem manifest 36

37 Práce s JAR soubory Podobně jako předchozí příklad, ale s uživatelsky vytvořeným souborem mujmanifestfile.mf jar cmf myjarfile.jar mymanifestfile.mf *.class Vytvoří tabulku obsahu souboru mujjarfile.jar jar tf myjarfile.jar 37

38 Práce s JAR soubory Přidá příznak komentáře (více informací) o zkomprimovaných souborech jar tvf mujjarfile.jar Pokud vytvoříme JAR soubor s volbou 0 (nula), tento JAR soubor bude přidán do classpath Při poklepání na.jar soubor by se tento měl spustit (pokud jsou nastaveny správně příznaky) ke spuštění.jar souboru se používá pouze jre místo jdk 38

39 Příklad TicTacToe TicTacToe.class audio images jar cvf TicTacToe.jar TicTacToe.class audio images jeden soubor a dva kompletní podadresáře, v adresáři TicTacToe 39

40 Prohlížení obsahu JAR souboru jar tf TicTacToe.jar META-INF/MANIFEST.MF TicTacToe.class 40

41 Extrahování obsahu JAR souboru jar xf TicTacToe.jar TicTacToe.class images/cross.gif extrahujeme pouze dva soubory, a to TicTacToe.class a cross.gif z adresáře images jar xf TicTacToe.jar extrahujeme všechny soubory 41

42 java jar app.jar Spuštění aplikace 42

43 Ladění programů - debugger ladění programů možnosti: vlastní výpis lokálních proměnných použití ladícího programu 1. nastavení zarážek (breakpointů) a v místech zastavení programu (možnost prohlížení obsahu všech proměnných, výhodný funkce inspect ) 2. zatrhnout záložku View \ Show debugger 3. spustit v BlueJ metodu main v bodě přerušení debugger, kde se prohlíží proměnné, krokuje program 43

44 Poznámky Nastavení bodů přerušení breatpoints Tool Set/ClearBreakpoint Ctrl B 44

45 Poznámky View Show debugger 45

46 Význam tlačítek Halt slouží k zastavení běžícího programu (zacyklený program) Step krokování, necháte program provést příkaz na který ve zdrojovém textu ukazuje šipka Step Into krokovat dovnitř, podobná funkce jako Step, při provádění metody se zavolá pouze první příkaz metody a pokračuje se v metodě Continue program pokračuje v běhu až do příští zarážky (breakpointu) Terminate ukončení programu 46

47 Poznámky Inspekce objektů 47

48 Jednoduché použití grafiky orientace osy x a y a jejich rozsah daný nastavením v zobrazitelných bodech (800x 600, 1280x1024) Třída Graphics z balíčku java.awt poskytuje různé metody pro zobrazení textu a různých tvarů Třída JPanel z balíčku javax.swing poskytuje prostor pro kreslení 48

49 package graf1; import java.awt.graphics; import javax.swing.jpanel; public class DrawPanel extends JPanel{ public void paintcomponent(graphics g){ super.paintcomponent(g); int sirka = getwidth(); //ziska sirku panelu int vyska = getheight(); //ziska vysku panelu Poznámky Třída vytváří skutečné kreslení DrawPanel je podtřídou třídy JPanel //kresli dve cary z rohu do rohu g.drawline(0, 0, sirka, vyska); g.drawline(0, vyska, sirka, 0); // kresli obdelnik g.drawrect(12, 15, sirka-20, vyska-30); } } 49

50 Třída DrawPanel Každý třída JPanel, tedy i DrawPanel má metodu paintcomponent, kterou systém automaticky volá vždy, když potřebuje zobrazit JPanel jedná se o případy prvního zobrazení, zobrazení po překrytí, zobrazení po změně velikosti metoda má jeden argument typu Graphics který dostaneme od systému, když tuto metodu vyvoláme call back. 50

51 Třída DrawPanel prvním příkazem v každé metodě paintcomponent musí být volání předka, tedy: super.paintcomponent(g); 51

52 package graf1; import javax.swing.jframe; public class DrawPanelTest { public static void main(string[] args) { Poznámky Třída vytvoří okno pro zobrazení kreslení // vytvori panel do ktereho se kresli DrawPanel panel = new DrawPanel(); //vytvori novy frame, ktery sestava z panelu JFrame aplikace = new JFrame(); // nastavi frame - ramec na exit, kdyz je uzavreny aplikace.setdefaultcloseoperation(jframe.exit_on_close); aplikace.add(panel); //prida panel do framu aplikace.setsize(250,250); //nastavi velikost framu aplikace.setvisible(true); //ucini frame viditelnym } } 52

53 Třída DrawPanelTest K zobrazení DrawPanel na obrazovku, potřebujeme window (okno) to vytvoříme pomocí třídy JFrame aplikace.setdefaultcloseoperation(jframe.exit_on_close); způsobí, že aplikace bude ukončena, když uživatel zavře okno aplikace.add(panel); připojí DrawPanel s našim kreslením k JFrame 53

54 Poznámky 54

55 Poznámky 55

56 Grafika - barvy a vyplněné tvary public Color(int r, int g, int b); předdefinované barvy: Color.BLACK, Color.BLUE, Color.CYAN, Color.DARK_GRAY, Color.GRAY, Color.GREEN, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE, Color.YELLOW 56

57 Grafika - barvy a vyplněné tvary metody fillrect, filloval podobné jako drawrect a drawoval: první dva parametry x a y souřadnice levého horního rohu třetí parametr šířka obrazce čtvrtý parametr délka obrazce 57

58 import java.awt.color; import java.awt.graphics; import javax.swing.jpanel; Poznámky public class DrawSmiley extends JPanel { public void paintcomponent( Graphics g ) { super.paintcomponent( g ); // draw the face g.setcolor( Color.YELLOW ); g.filloval( 10, 10, 200, 200 ); // draw the eyes g.setcolor( Color.BLACK ); g.filloval( 55, 65, 30, 30 ); g.filloval( 135, 65, 30, 30 ); // draw the mouth g.filloval( 50, 110, 120, 60 ); // "touch up" the mouth into a smile g.setcolor( Color.YELLOW ); // první obrazek g.fillrect( 50, 110, 120, 30 ); // tyto tri radky g.filloval( 50, 120, 120, 40 ); // jsou komentar } // end method paintcomponent } // end class DrawSmiley 58

59 import javax.swing.jframe; Poznámky public class DrawSmileyTest { public static void main( String args[] ) { DrawSmiley panel = new DrawSmiley(); JFrame application = new JFrame(); } application.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); application.add( panel ); application.setsize( 230, 250 ); application.setvisible( true ); } // end main 59

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

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

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

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

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

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

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

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

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení Třída DrawingTool strana 1 1. Základ Třída DrawingTool Třída DrawingTool je určena k jednoduchému kreslení pomocí několika základních příkazů do grafického okna zadaných rozměrů (nastavení v konstruktoru),

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

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

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

Java - Kresba. 2/28/11 1/8 Java - kresba

Java - Kresba. 2/28/11 1/8 Java - kresba Java - Kresba Základní entity a jejich kresba ve třídě Graphics nemůžeme nastavit linii, šířku a typ, z grafických atributů jí můžeme nastavit pouze barvu Linie (čára)... drawline(int x1, int y1, int x2,

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

Aplikace s grafickým uživatelským rozhraním

Aplikace s grafickým uživatelským rozhraním Aplikace s grafickým uživatelským rozhraním 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 1 Typy aplikací Konzolová

Více

Projekty pro výuku programování v jazyce Java

Projekty pro výuku programování v jazyce Java JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Deklarace a vytváření

Deklarace a vytváření OOPR_10 1 Obsah přednášky Deklarace a tvorba polí, jejich použití Rozšířený příkaz cyklu for Třída Registr a datovým atributem typu pole Třídy Zásobník a Fronta Třída Registr pro uložení objektových a

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

2 Grafický výstup s využitím knihovny

2 Grafický výstup s využitím knihovny 2 Grafický výstup s využitím knihovny Studijní cíl Tento blok je věnován základním principům při vytváření grafického výstupu pomocí standardních metod, které poskytuje grafické rozhraní. V textu budou

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

OOPR_05. Případové studie

OOPR_05. Případové studie OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

11 Diagram tříd, asociace, dědičnost, abstraktní třídy 11 Diagram tříd, asociace, dědičnost, abstraktní třídy 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 diagramům tříd, asociaci,

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

Datové abstrakce v programovacích jazycích

Datové abstrakce v programovacích jazycích Datové abstrakce v programovacích jazycích Motivace Strukturovat rozsáhlé programy Dovolit separátní překlad Možné formy strukturování: Podprogramy původní forma abstrakce -abstrakce výpočtů Moduly kontejnery

Více

Textové soubory. alg9 1

Textové soubory. alg9 1 Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle

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

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

Abstraktní třída a rozhraní

Abstraktní třída a rozhraní Abstraktní třída a rozhraní Někdy se může stát, zejména při psaní v hierarchické struktuře hodně nadřazených tříd, že tušíme, že bude ve zděděných třídách vhodné použít nějakou metodu. Tuto metodu ještě

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

Základy objektové orientace I. Únor 2010

Základy objektové orientace I. Únor 2010 Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných

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

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

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme

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 : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

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

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

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

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

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

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

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

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

Access. Tabulky. Vytvoření tabulky

Access. Tabulky. Vytvoření tabulky Access správa databáze (tabulky, relace, omezující podmínky, data...) uživatelské prostředí pro práci s databází (formuláře, sestavy, datové stránky, makra...) ukázková aplikace Northwind hlavní okno databáze

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

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ání v C++ 3, 3. cvičení

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

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

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

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

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí Kolekce obecně Seznamy a iterátory 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 Kolekce ::= homogenní sada prvků

Více

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka. 1 Disky, adresáře (složky) a soubory Disky Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka. A:, B: C:, D:, E:, F: až Z: - označení disketových mechanik - ostatní disky

Více

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová 5. Statistica StatSoft, Inc., http://www.statsoft.com, http://www.statsoft.cz. Verze pro Mac i PC, dostupná

Více

Přehled probírané látky

Přehled probírané látky OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi

Více

Příloha 6. Palety nástrojů

Příloha 6. Palety nástrojů Příloha 6. Palety nástrojů Palety nástrojů v IDE poskytují zkrácení pro příkazy nabídky. Příkazy jsou rozděleny do několika palet nástrojů, které mohou být nezávisle přeskupeny nebo vloženy do plovoucích

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

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

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

Systém souborů (file system, FS)

Systém souborů (file system, FS) UNIX systém souborů (file system) 1 Systém souborů (file system, FS)! slouží k uchování dat na vnějším paměťovém médiu a zajišťuje přístup ke struktuře dat! pro uživatele možnost ukládat data a opět je

Více

JAVA. Krátce o Reflection API

JAVA. Krátce o Reflection API JAVA Krátce o Reflection API 1 Přehled reflection, introspection umožňuje zjišťování informací o třídách, atributech, metodách vytváření objektů volání metod... balík java.lang.reflect třída java.lang.class

Více

7 Jazyk UML (Unified Modeling Language)

7 Jazyk UML (Unified Modeling Language) 7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující

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

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

11. Dědičnost. Dědičnost strana 103

11. Dědičnost. Dědičnost strana 103 Dědičnost strana 103 11. Dědičnost V této kapitole si vysvětlíme jeden ze základních pojmů objektově orientovaného programování dědičnost (inheritance). S ní souvisejí i následující témata: předek a potomek

Více

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC Modul FADN BASIC je určen pro odbornou zemědělskou veřejnost bez větších zkušeností s internetovými aplikacemi a bez hlubších

Více

7 Jazyk UML (Unified Modeling Language)

7 Jazyk UML (Unified Modeling Language) 7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující

Více

Principy objektově orientovaného programování

Principy objektově orientovaného programování Principy objektově orientovaného programování Třídy a objekty 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 C E T

Více

Principy UML. Clear View Training 2005 v2.2 1

Principy UML. Clear View Training 2005 v2.2 1 Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat

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

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

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

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

24. listopadu 2013, Brno Připravil: David Procházka

24. listopadu 2013, Brno Připravil: David Procházka 24. listopadu 2013, Brno Připravil: David Procházka Dědičnost Základy objektového návrhu Časná a pozdní vazba Strana 2 / 22 Obsah přednášky 1 Časná a pozdní vazba 2 Rozhraní pro dědičnost 3 Konstruktory

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

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

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Dědičnost tříd v C++ Dědičnost tříd Dědičnost umožňuje vytvářet nové třídy z tříd existujících tak, že odvozené třídy (tzv. potomci) dědí vlastnosti

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

přetížení operátorů (o)

přetížení operátorů (o) přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory (tj. definovat vlastní) - pro definici slouží klíčové slovo operator následované typem/znakem operátoru - deklarace pomocí funkčního

Více

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e);

TŘÍDY POKRAČOVÁNÍ. Události pokračování. Příklad. public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); TŘÍDY POKRAČOVÁNÍ Události pokračování public delegate void ZmenaSouradnicEventHandler (object sender, EventArgs e); class Bod private int x; private int y; public event ZmenaSouradnicEventHandler ZmenaSouradnic;

Více

Konstruktory překladačů

Konstruktory překladačů Konstruktory překladačů Miroslav Beneš Dušan Kolář Konstruktor Lex generátor lexikálních analyzátorů M. E. Lesk, 1975 - pro OS Unix flex - Vern Paxson, 1990 - GNU verze určeno pro generování výstupu v

Více

Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické

Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Třídy, polymorfismus A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Polymorfizmus ~ vícetvarost Polymorfizmus základní vlastnost objektového přístupu základní princip polymorfismu:

Více

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016

Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Správa paměti Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Objektové modelování, B36OMO 10/2016, Lekce 2 https://cw.fel.cvut.cz/wiki/courses/xxb36omo/start

Více