Objektové orientované programování Objektově orientované problémy v PHP Lukáš Masopust 2008.

Slides:



Advertisements
Podobné prezentace
(instance konkrétní třídy)
Advertisements

Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
Pole, ukazatele a odkazy
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
1NPRG054 Vývoj vysoce výkonného software /2013 David Bednárek Domácí úkol.
„Programátor by měl být v prvé řadě líný.“. PIFovo Web API (API = Application Programming Interface)
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
Polymorfismus Dědičnost
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
Programování 02 OOP.
Čtvrté cvičení Objektové programování Objektový model v Javě
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
PB161 Jmenné prostory, I/O proudy PB161 | Jmenné prostory, IO proudy PB161 – Programování v jazyce C++ Objektově Orientované Programování.
Adapter. Adapter – pojem Součástka navržená k propojení dvou „nekompatibilních“ zařízení Definice slova podle Cambridge Advanced Learner's Dictionary:
Objektové programování
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
C# - OOP (object oriented programming)
Dependency injection Předávání závislostí Petr Kalivoda
6. cvičení Polymorfismus
PB161 Právo friend, přetěžování operátorů, přetypování PB161 | Friend, operátory PB161 – Programování v jazyce C++ Objektově Orientované Programování.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Návrh a tvorba WWW Cvičení 5
Autor: Petr Řezníček Vedoucí práce: Mgr. Dana Majerová Ph.D. ČVUT FJFI v Děčíně1 / 10 Elektronická žákovská knížka.
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
VYTVOŘENÍ TŘÍDY KOMPLEXNÍHO ČÍSLA Vytvořte třídu proměnné, která bude prezentovat komplexní číslo. Zadávat se budou dvě složky, reálná a imaginární. Dále.
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
123.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
Decorator. Rozšiřuje objekty o dodatečné chování  rozšiřuje konkrétní objekty, ne třídy  rozšiřuje objekt dynamicky, tj. za běhu Upřednostňuje kompozici.
Informatika I 12. přednáška RNDr. Jiří Dvořák, CSc.
Observer Martin Dráb Návrhové vzory, Co to je?  Definuje závislost 1:N mezi objekty  Závislé objekty jsou informovány o změně stavu  Konzistentní.
Vaše jistota na trhu IT Rozhraní a implementace Rudolf PECINOVSKÝ 2012 – Vývoj bezpečných aplikací 1.
Programování v jazyce C++ Dědičnost a polymorfismus.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
PJV15 1 Vnořené ( nested ) a vnitřní ( inner ) členy Třídy či interfejsy mohou být členy tříd či interfejsů. Je-li X obalem Y a Y obalem Z, pak Z získá.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Y36PJC Programování v jazyce C/C++
Úvod do C# - OOP Jaroslav BURDYS 4IT.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Y36PJC Programování v jazyce C/C++
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Ovládání interaktivity
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Bridge.
Cvičení 4 Dědičnost objektů.
C# přehled vlastností.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Vázání dat Data Binding
Výčtové typy ( Java 5 ) Výčtové typy jsou speciální třídy zavedené pro větší bezpečí a pohodlí. V nejjednodušší variantě se definují příkladmo takto:
Adapter
Composite “Spojuj a panuj”.
Bridge.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Transkript prezentace:

Objektové orientované programování Objektově orientované problémy v PHP Lukáš Masopust 2008

Třída se přestavuje Třída  Vlastnosti  Konstruktor Naplnění Zavolání metody  Destruktor  Metoda Class Cucitel{ Var $vyska, $vaha, $jmeno; Function __construct ($vyska, $vaha, $jmeno) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $this->ServatStudenty(); } Function __destruct () { Unset($this->vyska); Unset($this->$vaha); Unset($this->$prinost); […] } Function ServatStudenty() Echo „Tady bude ticho!!!“ } Class Cucitel{ Var $vyska, $vaha, $jmeno; Function __construct ($vyska, $vaha, $jmeno) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $this->ServatStudenty(); } Function __destruct () { Unset($this->vyska); Unset($this->$vaha); Unset($this->$prinost); […] } Function ServatStudenty() Echo „Tady bude ticho!!!“ }

Né vše mohou vidět všechno… Třída  Public - přístupná všem uživatelům třídy.  Protected - přístupná uživatelům třídy (rodiče) a podtřídy, která tuto třídu dědí.  Private - přístupná pouze uvnitř třídy.  Vytvoření objektu  Voláme metodu objektu  Přístupujeme k vlastnosti Class Cucitel{ […] public $verejna = 'Veřejná'; protected $chranena = 'Chráněná'; private $soukroma = 'Soukromá'; } $Skop = new Cucitel (185, NaN, „Škop“); $Skop->servatStudenty(); Echo $Skop->jmeno; Class Cucitel{ […] public $verejna = 'Veřejná'; protected $chranena = 'Chráněná'; private $soukroma = 'Soukromá'; } $Skop = new Cucitel (185, NaN, „Škop“); $Skop->servatStudenty(); Echo $Skop->jmeno;

Učitel zplodí potomka Třída  Nová vlastnost  Nový konstruktor  Přepisujeme metodu  Vytváříme objekt  Voláme překrytou metodu Class Cmucitel extends Cucitel{ Var $hlasitost=1; Function __construct ($vyska, $vaha, $jmeno, $hlasitost) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $ this->hlasitost=$hlasitost $this->servatStudenty(); } Function servatStudenty($hlasitost) for ($i=0;$i<$hlasitost;$i++) Echo „Tady bude ticho!!!“ } $LM= new Cmucitel (182, 80, „LM“, 5) ; $LM::servatStudenty(); //funguje jen unitř Cmucitel Class Cmucitel extends Cucitel{ Var $hlasitost=1; Function __construct ($vyska, $vaha, $jmeno, $hlasitost) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $ this->hlasitost=$hlasitost $this->servatStudenty(); } Function servatStudenty($hlasitost) for ($i=0;$i<$hlasitost;$i++) Echo „Tady bude ticho!!!“ } $LM= new Cmucitel (182, 80, „LM“, 5) ; $LM::servatStudenty(); //funguje jen unitř Cmucitel

Mnohotvarost $Skop = new Cucitel (185, NaN, „Škop“); Function __construct ($vyska, $vaha, $jmeno) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $this->ServatStudenty(); } Function __construct ($vyska, $vaha, $jmeno) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $this->ServatStudenty(); } $LM= new Cmucitel (182, 80, „LM“, 2) ; Function __construct ($vyska, $vaha, $jmeno, $hlasitost) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $ this->hlasitost=$hlasitost; $this-> ServatStudenty($hlasitost); } Function __construct ($vyska, $vaha, $jmeno, $hlasitost) { $this->vyska =$ vyska; $this->vaha= $vaha; $this->jmeno = $jmeno; $ this->hlasitost=$hlasitost; $this-> ServatStudenty($hlasitost); } Vypíše: Tady bude ticho!!! Vypíše: Tady bude ticho!!! Tady bude ticho!!!

Objektové rozhraní - interface Vytvoříte kostru třídy a výsledná třída poté kostru jen implementuje. interface Rozhrani{ public function VypisuRozhrani(); public function VypisParametr($parametr); } class Trida implements Rozhrani{ public function VypisuRozhrani(){ echo 'Rozhraní bylo zahrnuto'; } public function VypisParametr($parametr){ echo $parametr; } $tr = new Trida; $tr->VypisuRozhrani(); $tr->VypisParametr('Vypíše paramtr'); interface Rozhrani{ public function VypisuRozhrani(); public function VypisParametr($parametr); } class Trida implements Rozhrani{ public function VypisuRozhrani(){ echo 'Rozhraní bylo zahrnuto'; } public function VypisParametr($parametr){ echo $parametr; } $tr = new Trida; $tr->VypisuRozhrani(); $tr->VypisParametr('Vypíše paramtr'); Definice rozhraní Musí být public Třída, která implementuje rozhraní

To je vše přátelé…