Páté cvičení Dědičnost Interface Abstarktní třídy a metody

Slides:



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

Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Úvod do objektově orientovaného programování
Třetí cvičení Podmíněné příkazy Cykly Break a Continue Switch Return
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í.
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í v C++ Cvičení.
● SWIG - Simplified Wrapper and Interface Generator ● + google a diskusní fóra ● nástroj zjednodušující (a sjednocující)
Programování 02 OOP.
Druhé cvičení Vytváření identifikátorů Datové typy
Čtvrté cvičení Objektové programování Objektový model v Javě
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
C# - struktury, výčtové typy, pole
Databáze Jiří Kalousek.
Druhá přednáška Datové typy a operátory Zapouzdření Pojem rozhraní
Rudolf Pecinovský Dědění implementace Rudolf Pecinovský
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í.
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
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é orientované programování Objektově orientované problémy v PHP Lukáš Masopust 2008.
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 -
Rudolf Pecinovský Dědění implementace Rudolf Pecinovský
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
6. cvičení Polymorfismus
Počítače a programování 1
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í
Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB – Technická univerzita Ostrava
PB161 Principy OOP - rozhraní, dědičnost PB161 | Principy OOP - Dědičnost, rozhraní
IB111 Programování a algoritmizace
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.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
JAVA Tutoriál Ing. Lumír Návrat, A1018 Tel:
Šesté cvičení Výjimky Balíky.
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
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.
Pokročilé programování v C++ (část B)
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
Vaše jistota na trhu IT Rozhraní a implementace Rudolf PECINOVSKÝ 2012 – Vývoj bezpečných aplikací 1.
Template Method. Motivační příklad – reálný svět Čaj 1) Uvař vodu 2) Dej do hrnku sáček čaje 3) Zalij hrnek 4) Přisyp cukr a vymačkej citrón Káva 1) Uvař.
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é.
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á.
Y36PJC Programování v jazyce C/C++
Úvod do C# - OOP Jaroslav BURDYS 4IT.
OOP - Objektově Orientované Programování
Y36PJC Programování v jazyce C/C++
Generické typy jsou třídy či interfejsy deklarující tzv. typové parametry jimiž: systematizují typovou kontrolu kompilátorem, vyjadřují jasněji smysl,
Výukový materiál zpracován v rámci projektu
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Návrhový vzor Flyweight
Abstract Factory.
Polymorfismus = Mnohotvarost
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Bridge.
C# přehled vlastností.
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:
Bridge.
Transkript prezentace:

Páté cvičení Dědičnost Interface Abstarktní třídy a metody Finální třídy a metody Příklad

Dědičnost dědičnost geometrické těleso čtverec kruh barevný čtverec obvod obsah obvod obsah strana obvod obsah poloměr čtverec kruh obvod obsah strana barva výplně barevný čtverec dědičnost Java cv2

Dědičnost Vztah mezi dvěma (zprostředkovaně více) objekty Vhodný nástroj a postup pro modelování problému Od abstraktnějších pojmů ke konkrétnějším Pravidlo vztahu JE-MÁ JE – adept na dědičnost čtverec JE geometrické těleso MÁ – adept na agregaci čtverec MÁ bod Dědičnost se definuje pomocí klíčového slova extends Java cv2

Dědičnost class Potomek extends Predek { … //tělo třídy Potomek } Každá třída má předka, pokud ho nemá explicitně definovaného, pak dědí z java.lang.Object Přístup na rodiče pomocí super public class Kruh extends GeometrickeTeleso { public int nejakaMetoda() { super.nejakaMetoda(); //zavolani metody predka Java cv2

Dědičnost – problém s konstruktory Při vytváření potomka musí být vždy volán konstruktor předka Pokud na předkovi existuje konstruktor bez parametrů (i implicitní), je vše automaticky Pokud konstruktor předka má alespoň jeden parametr, musí se na první řádce kostruktoru potomka přímo zavolat kostruktor předka pomocí super Java cv2

Interface Java nepodporuje vícenásobnou dědičnost Místo toho zavádí pojem interface Deklarace vlastností (metod), které objekt splňuje (a konstant) Definice interfacu se podobá definici třídy, metody nemají implementaci Rozhraní lze dědit, dokonce i vícenásobně Př.: interface Rozhrani { void metodaRozhrani(); } Java cv2

Implementace Interface Třída může implementovat více rozraní Pak musí implementovat všechny metody definované v rozhraní Definuje se pomocí klíčového slova implements Př.: class NejakaTrida implements NejakeRozhrani Java cv2

Abstraktní třídy a metody Abstraktní metoda je deklarovaná, ale nemá implementaci Třída musí být abstraktní, pokud obsahuje nějakou abstraktní metodu Od abstraktní třídy nelze vytvářet instance Lze tak vynutit implementaci metody v potomcích Př.: abstract class GeometrickeTeleso { abstract int obsah(); } Java cv2

Finální třídy a metody Pokud je metoda označená jako finální, nelze jí překrýt (v potomkovi) Pokud je třída označena jako finální, nelze z ní dědit (vytvářet potomky) Od abstraktní třídy nelze vytvářet instance Lze tak vynutit implementaci metody v potomcích Př.: abstract class GeometrickeTeleso { abstract int obsah(); } Java cv2