Pokročilé schopnosti OOP
|
|
- Veronika Černá
- před 9 lety
- Počet zobrazení:
Transkript
1 Kapitola 7 Pokročilé schopnosti OOP V kapitole 6 jste absolvovali základy objektově orientovaného programování v PHP. V této kapitole budeme na těchto základech stavět. Seznámíte se s několika vyspělejšími schopnostmi OOP, které byste si měli zařadit do svého repertoáru hned poté, co budete mít v malíku základy. Konkrétně se v kapitole hovoří o pěti schopnostech: Klonování objektů. Jedním z hlavních zdokonalení modelu OOP v PHP verze 5 je to, že se všechny objekty považují za odkazy, ne za hodnoty. Jak se pak ovšem vypořádáme s úlohou vytvořit kopii objektu, když se všechny objekty považují za odkazy? Klonováním objektu, což je nová schopnost v PHP 5. Dědění. Jak už bylo zmíněno v kapitole 6, je schopnost budovat hierarchie tříd prostřednictvím dědění klíčovým pojmem OOP. Dozvíte se, co je to dědění, jakou má v PHP 5 syntax, a uvidíte několik příkladů, které předvádějí tuto klíčovou schopnost OOP. Rozhraní. Rozhraní je nějaká kolekce neimplementovaných definic metod a konstant. Slouží jako jistý náčrt třídy. Rozhraní přesně definují, co se může ve třídě dělat, ale nezatěžují se konkrétními podrobnostmi implementace. V této kapitole se dozvíte, jakou podporu poskytuje PHP 5 pro rozhraní, a uvidíte také několik příkladů, které předvádějí tuto klíčovou schopnost OOP. Abstraktní třídy. Abstraktní třída je v podstatě taková třída, ze které se nedají vytvářet instance. Účelem abstraktních tříd je to, aby se z nich odvozovaly třídy, jejichž instance se už dají vytvářet (říká se jim někdy konkrétní třídy). Abstraktní třídy lze implementovat plně, nebo implementovat jen částečně, nebo neimplementovat vůbec. V této kapitole se uvádějí všeobecné pojmy, které se točí okolo abstraktních tříd spolu s úvodem, jak se abstraktní třídy implementují v PHP 5. Reflexe. Jak jste se dozvěděli v kapitole 6, skrývání odpudivých podrobností aplikace přívětivými rozhraními ( zapouzdření) je jedním z hlavních pilířů OOP. Nicméně programátoři ovšem potřebují nějaké pohodlné prostředky, jimiž se dá prozkoumávat chování třídy. Tuto schopnost poskytuje pojem reflexe, který se zde vysvětluje.
2 178 Kapitola 7 Pokročilé vlastnosti OOP Schopnosti OOP nepodporované v PHP Máte-li zkušenosti s jinými objektově orientovanými jazyky, možná po přečtení výše uvedeného seznamu nespokojeně potřásáte hlavou, a ptáte se, proč v něm chybí jedna nebo několik konkrétních schopností OOP, které důvěrně znáte z jiných jazyků. Je docela dobře možné, že je to kvůli tomu, že PHP tuto schopnost nepodporuje. Takže abyste si hlavu úplně nevyviklali z pantů, jsou v následujícím výčtu uvedena ta vyspělá témata OOP, která PHP nepodporuje, a proto jejich výklad v kapitole nenajdete. Jmenné prostory ( namespace). Přestože byly původně do PHP 5 naplánované, od začlenění jmenných prostorů bylo brzo upuštěno. Není jasné, zda bude podpora jmenných prostorů integrována do nějaké budoucí verze. Přetěžování metod ( overloading). Možnost docílit polymorfického účinku prostřednictvím přetěžování funkcí PHP nepodporuje a podle diskuse na webových stránkách Zend Technologies, patrně ani nikdy podporovat nebude. Více se o tom můžete dozvědět na adrese zend.com/php/ask_experts.php. Přetěžování operátorů. Možnost přiřadit dodatečné významy stávajícím operátorům na základě typu dat, která se pokoušíte modifikovat, zatím není na pořadu dne. Podle výše zmíněné diskuse na webu Zend Technologies, není pravděpodobné, že by se tato schopnost někdy v budoucnu implementovala. Vícenásobné dědění. PHP nepodporuje vícenásobné dědění. Implementace více rozhraní se však podporuje. Jen čas ukáže, budou-li se v budoucnu některé z těchto schopností v PHP podporovat. Klonování objektů Jednou z největších stinných stránek objektově orientovaných schopností PHP 4 byla skutečnost, že zacházel s objekty jako s jinými datovými typy. Tato praxe byla překážkou využití mnohých běžných metodologií OOP, jako jsou návrhové vzory. Takové metodologie závisejí na možnosti předávat objekty do jiných metod třídy odkazem, ne hodnotou, což byla výchozí praktika v PHP. Naštěstí byla tato záležitost v PHP 5 vyřešena, a nyní se standardně se všemi objekty zachází jako s odkazy. Protože se ale nyní se všemi objekty zachází jako s odkazy, ne jako s hodnotami, je zase obtížnější udělat kopii objektu. Pokusíte-li se zkopírovat odkazovaný objekt, bude prostě ukazovat zpět na adresované umístění původního objektu. PHP se s tím vypořádal tak, že nabízí explicitní prostředek pro klonování objektu. Příklad klonování Klon objektu vytvoříte tak, že před ním uvedete klíčové slovo clone, jako zde: cílový_objekt = clone zdrojový_objekt; Vyčerpávající příklad klonování objektu nabízí výpis 7-1. V příkladu jsem vytvořil ukázkovou třídu s názvem parazitfirmy, která obsahuje dva členy (idzamestnance a barvakravaty), a jejich odpovídající gettery a settery. V příkladu se vytvoří instance parazitfirmy a použije se jako základna pro předvedení, jaké účinky má operace klonování.
3 Velká kniha PHP a MySQL Výpis 7-1. Klonování objektu pomocí klíčového slova clone <?php class parazitfirmy { private $idzamestnance ; private $barvakravaty; // Definuje setter a getter pro $idzamestnance function nastavitidzamestnance ($idzamestnance ) { $this->idzamestnance = $idzamestnance ; function ziskatidzamestnance() { return $this->idzamestnance ; // Definuje setter a getter pro $barvakravaty function nastavitbarvukravaty ($barvakravaty) { $this->barvakravaty = $barvakravaty; function ziskatbarvukravaty() { return $this->barvakravaty; // Vytvoří nový objekt parazita firmy $parazit1 = new parazitfirmy(); // Nastaví člen idzamestnance parazita 1 $parazit1->nastavitidzamestnance ("12345"); // Nastaví člen barvakravaty parazita 1 $parazit1->nastavitbarvukravaty ("červená"); // Vytvoří klon parazita 1 $parazit2 = clone $parazit1; // Nastaví člen idzamestnance parazita 2 $parazit2->nastavitidzamestnance ("67890");?> // Výstup členů prvního a druhého parazita echo "parazit1 id zaměstnance: ".$parazit1->ziskatidzamestnance ()."<br />"; echo "parazit1 barva kravaty: ".$parazit1->ziskatbarvukravaty()."<br />"; echo "parazit2 id zaměstnance: ".$parazit2->ziskatidzamestnance ()."<br />"; echo "parazit2 barva kravaty: ".$parazit2->ziskatbarvukravaty()."<br />";
4 180 Kapitola 7 Pokročilé vlastnosti OOP Když kód spustíte, vrátí: parazit1 id zaměstnance: parazit1 barva kravaty: červená parazit2 id zaměstnance: parazit2 barva kravaty: červená Jak vidíte, $parazit2 se stal objektem typu parazitfirmy a zdědil hodnoty členů z $parazit1. Aby se zdůraznilo, že je $parazit2 opravdu typu parazitfirmy, nastavil se znovu i jeho člen idzamestnan- ce. Metoda clone() Při klonování objektu si dokonce můžete přizpůsobit chování tohoto procesu, když si ve třídě objektu definujete metodu clone(). Kromě toho, že se do cílového objektu zkopírují všechny existující členy objektu, vykoná se také vše, co je umístěné v této metodě. Upravte třídu parazitfirmy tak, že do ní přidáte metodu: function clone() { $this->barvakravaty = "modrá"; Až s tím budete hotovi, vytvořte nový objekt parazitfirmy, přidejte hodnotu členu idzamestnance, udělejte klon objektu, a nakonec vypište potřebná data, abyste si ověřili, že se barvakravaty klonovaného objektu skutečně nastavila prostřednictvím metody clone(). Příklad vidíte ve výpisu 7-2. Výpis 7-2. Rozšíření možností klíčového slova clone metodou clone() // Vytvoří objekt nového parazita firmy $parazit1 = new parazitfirmy(); // Nastaví člen idzamestnance parazita 1 $parazit1->nastavitidzamestnance ("12345"); // Vytvoří klon objektu $parazit1 $parazit2 = clone $parazit1; // Nastaví člen idzamestnance parazita 2 $parazit2->nastavitidzamestnance ("67890"); // Výstup členů obou parazitů echo "parazit1 id zaměstnance: ".$parazit1->ziskatidzamestnance ()."<br />"; echo "parazit2 id zaměstnance: ".$parazit2->ziskatidzamestnance ()."<br />"; echo "parazit2 barva kravaty: ".$parazit2->ziskatbarvukravaty()."<br />"; Když kód vykonáte, vypíše: parazit1 id zaměstnance: parazit2 id zaměstnance: parazit2 barva kravaty: modrá
5 Dědění Velká kniha PHP a MySQL Lidé mají docela dobrou výbavu pro uvažování v takových termínech, jakým je třeba uspořádaná hierarchie, proto není nijak překvapující, že je takové nahlížení na správu mnoha aspektů našeho každodenního života široce rozšířené. Struktury managementu firmy, daňový systém Spojených Států, i náš pohled na říše rostlin a živočichů, to je jen několik příkladů systémů, které se převážně spoléhají na hierarchie. Protože je objektově orientované programování založeno na premise, že my lidé dokážeme velmi dobře modelovat vlastnosti a chování prostředí skutečného světa, které se snažíme implementovat pomocí kódu, dá se z toho rozumně usoudit, že jsme také schopni znázorňovat tyto hierarchické vztahy. Předpokládejme například, že vaše aplikace potřebuje třídu nazvanou Zamestnanec, jejíž účelem má být reprezentace charakteristik a chování, jaká člověk může očekávat od nějakého zaměstnance. Mezi členy takové třídy by mohly patřit jmeno: jméno zaměstnance vek: věk zaměstnance plat: plat zaměstnance zamestnan_let: počet let, které daný zaměstnanec u firmy pracuje. Mezi metody třídy Zamestnanec by mohly patřit: vykonatpraci: vykoná nějakou práci související se zadaným úkolem. snistobed: vezme si přestávku na oběd. vzitdovolenou: týká se nejcennějších týdnů v roce. Tyto charakteristiky a chování budou relevantní pro všechny druhy zaměstnanců, bez ohledu na účel nebo pozici zaměstnance v organizaci. Je zřejmé, že budou mezi zaměstnanci také jisté rozdíly; například, pracovník exekutivy může mít v držení jisté akcie firmy, a bude sto společnost tunelovat, zatímco jiní zaměstnanci takové výdobytky nemají. Sekretářka musí umět napsat dopis a vedoucí prodejny musí umět udělat inventuru. Navzdory těmto rozdílům by ale bylo velmi neefektivní, kdybyste museli vytvářet a udržovat redundantní struktury tříd pro ty atributy, které sdílejí všichni zaměstnanci. Vývoj schematu OOP to bere v úvahu. Umožňuje dědit z existujících tříd a dále na nich budovat. Dědění třídy V PHP se dědění třídy dociluje klíčovým slovem extends.předvádí je výpis 7-3, kde se nejprve definuje třída Zamestnanec, pak se vytvoří třída Vedouci, která bude dědit ze třídy Zamestnanec. Poznámka Třídě, která dědí z jiné třídy, se říká dceřiná ( child) třída, podtřída nebo odvozená třída. Dceřiná třída dědí ze své rodičovské (parent), neboli základní ( base) třídy.
6 182 Kapitola 7 Pokročilé vlastnosti OOP Výpis 7-3. Dědění ze základní třídy <?php # Definuje třídu Zamestnanec class Zamestnanec { private $jmeno; # Definuje funkci set vlastnosti pro soukromý člen $jmeno. function nastavitjmeno($jmeno) { if ($jmeno == "") echo "Jméno nesmí zůstat prázdné!"; else $this->jmeno = $jmeno; # Definuje funkci get vlastnosti pro soukromý člen $jmeno function ziskatjmeno() { return "Jmenuji se ".$this->jmeno."<br />"; #konec třídy Zamestnanec # Definuje třídu Vedouci, která bude dědit z třídy Zamestnanec class Vedouci extends Zamestnanec { # Definuje metodu jedinečnou pro Zamestnanec function tunelovatfirmu() { echo "Prodám aktiva firmy, abych mohl financovat svou jachtu!"; #konec třídy Vedouci # vytvoří nový objekt Vedouci $exec = new Vedouci(); # zavolá metodu nastavitjmeno(), která je definovaná ve třídě Zamestnanec $exec->nastavitjmeno("richard"); # Zavolá metodu ziskatjmeno() echo $exec->ziskatjmeno();?> # zavolá metodu tunelovatfirmu() $exec->tunelovatfirmu(); Kód vrátí Jmenuji se Richard. Prodám aktiva firmy, abych mohl financovat svou jachtu!
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ý
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
Úvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 7 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Modelování databází Modelování
Využití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OPVK-VT-III/2-ŠR-303 Druh didaktického materiálu DUM Autor RNDr. Václava Šrůtková Jazyk čeština
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,
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í
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
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ů
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
Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín
Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit
Objektově orientované programování
Objektově orientované programování Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 7 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1 Přednáška 7: Objektově
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
Jazyk C# (seminář 3)
Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na
Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1
Projektový seminář 1 Základní pojmy Tah = přemístění figury hráče na tahu odpovídající pravidlům dané hry. Při tahu může být manipulováno i s figurami soupeře, pokud to odpovídá pravidlům hry (např. odstranění
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ář
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ě
Úvod do PHP s přihlédnutím k MySQL
Root.cz - Úvod do PHP s přihlédnutím k MySQL Stránka č. 1 z 5 Úvod do PHP s přihlédnutím k MySQL 07.04.2000 Vhodná kombinace PHP a MySQL na dostatečně výkonném serveru poskytuje hodně možností. Hitem poslední
KAPITOLA 1 SOCIÁLNÍ SÍTĚ A PHP...17
Obsah ÚVODEM..............................................11 Co v této knize najdete................................... 12 Co budete v této knize potřebovat.......................... 13 Pro koho je tato
návrhový vzor Singleton.
KAPITOLA 2 Návrhový vzor Singleton Jazyk PHP 5 vám pomocí klíčových slov public, protected a private umožňuje kontrolovat, kdo získá přístup k určitým atributům a metodám třídy. Dále vám jazyk PHP 5 umožňuje
Objektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová
Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit
10. blok Logický návrh databáze
10. blok Logický návrh databáze Studijní cíl Tento blok je věnován převodu konceptuálního návrhu databáze na návrh logický. Blok se věnuje tvorbě tabulek na základě entit z konceptuálního modelu a dále
Zobrazování dat pomocí tabulek
4 Zobrazování dat pomocí tabulek Nyní už umíte využít spojené síly PHP a MySQL ke tvorbě dynamických stránek. Co však dělat v případě, chcete-li zobrazit opravdu velké množství řádků? Musíte mít nějaký
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
Příklady pracovních postupů
2014 Electronics For Imaging. Informace obsažené v této publikaci jsou zahrnuty v Právním upozornění pro tento produkt. 11 června 2014 Obsah 3 Obsah Příklady pracovních postupů tisku na serveru Fiery Server...5
Mobilní aplikace Novell Filr Stručný úvod
Mobilní aplikace Novell Filr Stručný úvod Únor 2016 Podporovaná mobilní zařízení Aplikace Novell Filr je podporována v následujících mobilních zařízeních: Telefony a tablety se systémem ios 8 novějším
Databázové systémy trocha teorie
Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů
Metodika. Architecture First. Rudolf Pecinovský rudolf@pecinovsky.cz
Copyright Rudolf Pecinovský, Soubor: 2014_Comm_PrW_Architecture First Methodology.doc, verze 1.00.2413, uloženo po 9.6.2014 14:43 1 z 39 Metodika Architecture First Rudolf Pecinovský rudolf@pecinovsky.cz
Semestrální práce implementuje univerzální tokenizer založený na stavovém automatu. Jsou implementovány následující automaty:
Překladač a obfuskátor ECMAScriptu Jan Pobříslo - semestrální práce PJP Zadání Zadáním semestrální práce je překladač pro ECMAScript (v. 262) z jazyka rozšířeného o třídní dědění (ECMAScript používá dědění
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ší
Formuláře. Internetové publikování
Formuláře Internetové publikování Formuláře - příklad Formuláře - použití Odeslání dat od uživatele Možnosti zpracování dat Webová aplikace na serveru (ASP, PHP) Odeslání e-mailem Lokální script Formuláře
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í
Člověk a příroda Biologie člověka Stavba a funkce lidského těla, 8.ročník. Žák si prohlubuje a získává informace o umělém přerušení těhotenství.
VY_52_INOVACE_PCHA2_28_8B Vzdělávací oblast: Vzdělávací cíl: Kompetenční cíl: Autor: Člověk a příroda Biologie člověka Stavba a funkce lidského těla, 8.ročník Žák si prohlubuje a získává informace o umělém
X36 WWW Šablony Martin Klíma xklima@fel.cvut.cz Čtryřvrstvá architektura Server Klient Prezentační logika Aplikační Logika Databáze 2 Výhody Jednotlivé vrstvy jsou nezávislé Lze je samostatně spravovat
Objektově orientované programování v PHP 5. Martin Klíma
Objektově orientované programování v PHP 5 Martin Klíma OOP & PHP 5 V PHP 5 konečně značné rozšíření OOP Blíží se to moderním programovacím jazykům jako Java nebo C# Výhody OOP Zapouzdření (nové modifikátory
OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013
OBJECT DEFINITION LANGUAGE Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 ODL a OQL ODL Objektové Object Definition Language popis objektového schéma SQL DDL Relační Data Definition Language příkazy CREATE,
5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
Ovladač Fiery Driver pro systém Mac OS
2016 Electronics For Imaging, Inc. Informace obsažené v této publikaci jsou zahrnuty v Právní oznámení pro tento produkt. 30. května 2016 Obsah Ovladač Fiery Driver pro systém Mac OS Obsah 3...5 Fiery
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
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
Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);
Programovací jazyk PHP 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 Obsah Třídy a objekty Výjimky Webové aplikace
Tvorba geometrického modelu a modelové sítě.
Tvorba geometrického modelu a modelové sítě. Návod krok za krokem, jak postupovat při vytváření modelové geometrie ze zadaných geografických a geologických dat Pro řešitele bakalářských projektů!!! Nejprve
Technologie počítačových sítí 5. cvičení
Technologie počítačových sítí 5. cvičení Obsah jedenáctého cvičení Active Directory Active Directory Rekonfigurace síťového rozhraní pro použití v nadřazené doméně - Vyvolání panelu Síťové připojení -
základy finančního práva
Brno International Business School základy finančního práva Jaroslav Hloušek Josef Kuchta KEY Publishing s.r.o. Ostrava 2007 Publikace byla vydána ve spolupráci se soukromou vysokou školou Brno International
Objekty v PHP 5.x. This is an object-oriented system. If we change anything, the users object.
Objekty v PHP 5.x This is an object-oriented system. If we change anything, the users object. Objektové PHP Objekty se poprvé objevili v PHP ve verzi 4. Nepříliš zdařilý pokus. Programátoři získali nedůvěru
4. Základy relačních databází, logická úroveň návrhu
4. Základy relačních databází, logická úroveň návrhu Když před desítkami let doktor E. F. Codd zavedl pojem relační databáze, pohlíželo se na tabulky jako na relace, se kterými se daly provádět různé operace.
NPRG031 Programování II 1 / :25:46
NPRG031 Programování II 1 / 26 28. 2. 2018 11:25:46 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat jiné objekty
NMIN201 Objektově orientované programování 1 / :36:09
NMIN201 Objektově orientované programování 1 / 26 8.10.2013 15:36:09 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat
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;
Objekty a třídy. Procedurální a objektově orientované programování. V této kapitole se naučíte: Procedurální a objektově orientované programování
Objekty a třídy Objektově orientované programování (OOP) je určitý koncepční přístup návrhu programů a jazyk C++ rozšiřuje jazyk C o vlastnosti, které jeho použití usnadňují. Mezi nejdůležitější vlastnosti
Obecné pokyny k operativní činnosti kolegií
EIOPA-BoS-14/146 CS Obecné pokyny k operativní činnosti kolegií EIOPA Westhafen Tower, Westhafenplatz 1-60327 Frankfurt Germany - Tel. + 49 69-951119-20; Fax. + 49 69-951119-19; email: info@eiopa.europa.eu
Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu
Program pro flexibilní tvorbu evidencí VIKLAN - Evidence Uživatelská příručka pro seznámení se základními možnostmi programu Vlastimil Kubínek, Ing. Josef Spilka VIKLAN - Evidence Verse 1.11.8.1 Copyright
PRG036 Technologie XML
PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu
Správa linuxového serveru: Webová rozhraní k poště (Squirrelmail a Roundcube)
Home» Články» Praxe» Správa linuxového serveru» Správa linuxového serveru: Webová rozhraní... Předchozí kapitola Zpět na obsah Následující kapitola Správa linuxového serveru: Webová rozhraní k poště (Squirrelmail
Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.
23. Třídy, generické třídy, instance, skládání, statické metody a proměnné. Zapouzdření, konstruktory, konzistence objektu, zpřístupnění vnitřní implementace, modifikátory public a private. Polymorfismus,
KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.
KAPITOLA 3 Architektura aplikací na frameworku Rails V této kapitole: modely, pohledy, řadiče. 58 Část I: Začínáme Jedna ze zajímavých vlastností frameworku Rails spočívá v tom, že klade docela závažná
Diagramy tříd - základy
Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka Zákazník -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'
Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat
QA & Dokumentace Agenda Docházka Návrat k minulému praktickému cvičení Zápočtové práce QA opakování Dokumentace Co, jak a proč dokumentovat Dotazy, přání, stížnosti Kde je chyba? public static StringBuilder
Unity a Objekty (NMIN102) RNDr. Michal Žemlička, Ph.D.
Unity a Objekty Programování 2 (NMIN102) RNDr. Michal Žemlička, Ph.D. Větší programy Časté problémy: Ve více programech by se nám hodilo využít stejné řešení nějakého podproblému dalo by se vyřešit překopírováním
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ě
Programování v C++ První kroky
Programování v C++ První kroky Karel Mozdřeň 29. října 2009 1 Obsah 1 Úvod 5 1.1 Pro koho je kniha určena...................... 5 1.2 Proč první kroky?.......................... 5 2 Začínáme 6 2.1 Hello,
Kód, který se nebude často měnit
Factory Method Úvod - problém Mějme obchod s auty: public class OrderCars { public Car ordercar(string model) { Car car; Při přidání nového modelu je nutné upravit if(model.equals("mark IV")) car = new
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
Metodika pro vnitřní evaluaci Individuálních projektů systémových (IPs) podpořených z Prioritní osy 3
Metodika pro vnitřní evaluaci Individuálních projektů systémových (IPs) podpořených z Prioritní osy 3 Prioritní osa 3 Rovný přístup ke kvalitnímu předškolnímu, primárnímu a sekundárnímu vzdělávání. 1 Operační
Objekty a OOP KAPITOLA 3. První kroky s OOP. V této kapitole: První kroky s OOP. Rozšiřujeme třídy Šablony Soubory projektu
Objekty a OOP KAPITOLA 3 V této kapitole: První kroky s OOP Rozšiřujeme třídy Šablony Soubory projektu V této knize budeme používat objektově orientované programování (zkráceně OOP). Jedná se o styl programování,
Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39
Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Programovací jazyky Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 3 Číslo: V/5 Programování
Ú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í
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í
Řízení SW projektů. Lekce 1 Základní pojmy a jejich vztahy. přednáška pro studenty FJFI ČVUT. zimní semestr 2012
Řízení SW projektů Lekce 1 Základní pojmy a jejich vztahy přednáška pro studenty FJFI ČVUT zimní semestr 2012 Ing. Pavel Rozsypal IBM Česká republika Global Business Services Lekce 1 - Základní pojmy a
VYTVÁŘENÍ OBSAHU KURZŮ
VYTVÁŘENÍ OBSAHU KURZŮ Mgr. Hana Rohrová Mgr. Linda Huzlíková Ing. Martina Husáková Fakulta informatiky a managementu Univerzity Hradec Králové Projekt je spolufinancován Evropským sociálním fondem a státním
Webové služby. Martin Sochor
Webové služby Martin Sochor Webové služby způsob komunikace dvou aplikací přes Web binární zprávy (CORBA) blokovány proxy servery a firewally masivní využití XML protokol SOAP + jazyk pro popis služeb
7.3 Diagramy tříd - základy
7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'
MEZINÁRODNÍ AUDITORSKÝ STANDARD ISA 705
MEZINÁRODNÍ AUDITORSKÝ STANDARD MODIFIKACE VÝROKU VE ZPRÁVĚ NEZÁVISLÉHO AUDITORA (Účinný pro audity účetních závěrek sestavených za období počínající 15. prosincem 2009 nebo po tomto datu) OBSAH Odstavec
Zapouzdření. Tomáš Pitner, upravil Marek Šabo
Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou
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
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ů
Jazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 2. část BI-DNP Evropský sociální fond
Obrázek 6.14: Prohlížec nápovedy
JavaHelp Základní popis systému JavaHelp Soucástí vetšiny interaktivních aplikací je nápoveda (help) aplikace v Jave nejsou výjimkou. Systém JavaHelp je napsaný v Jave a je urcený pro aplikace vytvárené
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:
Úvod - problém. Při přidání nového modelu je nutné upravit. Kód, který se nebu de často měnit. n Mějme obchod s auty:
Factory Method Úvod - problém n Mějme obchod s auty: public class OrderCars { public Car ordercar(string model) { Car car; Při přidání nového modelu je nutné upravit if(model.equals("mark IV")) { car =
public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());
Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového
Minebot manuál (v 1.2)
Minebot manuál (v 1.2) Pro Váš rychlý start s nástrojem Minebot jsme připravili tohoto stručného průvodce, který by Vám měl být pomocníkem při spuštění a používání služby. Tento stručný průvodce by vám
7.3 Diagramy tříd - základy
7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý'
PŘIJETÍ K HOSPITALIZACI
PŘIJETÍ K HOSPITALIZACI (Oddíl 3 Zákona o duševním zdraví z roku 1983) 1. Jméno pacienta 2. Jméno lékaře odpovědného za péči o vás (váš ošetřující lékař ) 3. Název nemocnice a oddělení 4. Datum začátku
Problém identity instancí asociačních tříd
Problém identity instancí asociačních tříd Autor RNDr. Ilja Kraval Ve školeních a také následně po jejich ukončení se stále častěji objevují dotazy, které se týkají tzv. identity instancí asociační třídy.
VEŘEJNÁ JEDNOKOLOVÁ ARCHITEKTONICKO VÝTVARNÁ SOUTĚŽ O NÁVRH NA ŘEŠENÍ INTERIÉRŮ SCIENCE CENTRA A PLANETÁRIA
TECHMANIA SCIENCE CENTER, obecně prospěšná společnost, Plzeň VEŘEJNÁ JEDNOKOLOVÁ ARCHITEKTONICKO VÝTVARNÁ SOUTĚŽ O NÁVRH NA ŘEŠENÍ INTERIÉRŮ SCIENCE CENTRA A PLANETÁRIA DOTAZY K ORGANIZAČNÍM OTÁZKÁM SOUTĚŽE
PB161 6. přednáška (26. října 2015)
PB161 6. přednáška (26. října 2015) Standardní knihovna C++ obsahuje řadu částí, některé už jsme viděli (strings, I/O streams) mimo jiné obsahuje i knihovní funkce ze standardní knihovny jazyka C jiné
Komponenty v.net. Obsah přednášky
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 Obsah přednášky Rozdíl mezi COM a.net Distribuce komponent Programování
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Algoritmizace a programování Téma: XML Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 20 Číslo: V/5 Programování
Rezervační systém Tvorba WWW stránek
2012 Rezervační systém Tvorba WWW stránek Vytvoření rezervačního systému pro rezervaci motokár,ubytování a atrakcí Marek Svoboda Motokáry Motobydlo 30.12.2012 Obsah 1.Základní charakteristika... 3 a) Téma
PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk
Programování v jazyce C a C++
Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace
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
ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE
*UOHSX007FT5O* UOHSX007FT5O ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE PŘÍKAZ Č. j.: ÚOHS-S0499/2015/VZ-26987/2015/522/PKř Brno: 7.9.2015 Úřad pro ochranu hospodářské soutěže příslušný podle 112 zákona č. 137/2006
Polymorfismus. Porovnání jazyků z hlediska polymorfismu Jazyky C, C++, C# Jazyk Java PHP a jiné Na závěr souhrn vlastností jednotlivých jazyků
Polymorfismus Porovnání jazyků z hlediska polymorfismu Jazyky C, C++, C# Jazyk Java PHP a jiné Na závěr souhrn vlastností jednotlivých jazyků Jazyk C Jazyk C ve větší míře nepodporuje polymorfismus vůbec
ČÁST E OPERACE PROVÁDĚNÉ V REJSTŘÍKU ODDÍL 2 KONVERZE
METODICKÉ POKYNY TÝKAJÍCÍ SE PRŮZKUMU PROVÁDĚNÉHO ÚŘADEM PRO HARMONIZACI NA VNITŘNÍM TRHU (OCHRANNÉ ZNÁMKY A PRŮMYSLOVÉ VZORY) V OBLASTI OCHRANNÝCH ZNÁMEK SPOLEČENSTVÍ ČÁST E OPERACE PROVÁDĚNÉ V REJSTŘÍKU
SEMINÁŘE DEKSOFT 2015 Energetický audit (EA) vs. Energetický management (EM) Prezentace: Martin Varga www.stavebni-fyzika.cz
SEMINÁŘE DEKSOFT 2015 Energetický audit (EA) vs. Energetický management (EM) Prezentace: Martin Varga www.stavebni-fyzika.cz Nejprve vysvětlení pojmů: Energetický audit (dále jen EA) => lze si pod tím