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.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

(instance konkrétní třídy)
ÚVOD DO C++ 3 TŘÍDY a objekty - POKRAČOVÁNÍ
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.
OOP OOP (Object Oriented Programming)
25/08/20141 Typ struktura (1) Datový typ struktura ( struct ) je agrego- vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou.
Pole, ukazatele a odkazy
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
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.
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.
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
Programování v C++ Cvičení.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Čtvrté cvičení Objektové programování Objektový model v Javě
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
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é.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
PB161 Jmenné prostory, I/O proudy PB161 | Jmenné prostory, IO proudy PB161 – Programování v jazyce C++ Objektově Orientované Programování.
Třída jako zdroj funkcionality
Objektové programování
C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
08/04/20151 Delegáty (1) Delegát (delegate) je datový typ, který definuje signaturu metody Delegáty bývají rovněž označovány jako typo- vě bezpečné ukazatele.
6. cvičení Polymorfismus
Počítače a programování 1
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í.
Cvičení.
VISUAL BASIC PRALG.
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í.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
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.
12/04/20151 Kolekce (1) Kolekce (collection) představují standardní datové struktury (seskupení) prvků (objektů) Jsou definovány ve jmenném prostoru System.Collections.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Pokročilé programování v C++ (část B)
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
C – procedury Mgr. Lenka Švancarová.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Podprogramy (subroutines) Pojmenované kousky programu, které –tvoří logicky ucelené části –se v programu opakují Jsou zapsány na jednom místě a v případě.
IB111 Práce se soubory Správa paměti. Práce se soubory v Pythonu Soubor musíme „otevřít“ Poté s ním pracujeme –Čteme a/nebo zapisujeme Nakonec musíme.
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é.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Typ struktura (1) Datový typ struktura (struct) je agrego-vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou mít různé datové.
Y36PJC Programování v jazyce C/C++
Úvod do C# - OOP Jaroslav BURDYS 4IT.
PV178 – Úvod do vývoje v C#/.NET
OOP OOP (Object Oriented Programming)
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Rysy MS Windows Možnost multitaskingu a multithreadingu
Návrhový vzor Flyweight
Programování v jazyce C++
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Oblast platnosti identifikátoru (1)
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
MU002 – Informační technologie Základy algoritmizace 5/13
C# přehled vlastností.
Typ ukazatel (1) Proměnné typu ukazatel (pointer) uchovávají paměťovou adresu Hodnota ukazatele říká, kde (na jaké adrese) se v paměti nachází nějaký objekt.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Transkript prezentace:

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 vlastnosti a chování objektů Je možné ji definovat pomocí klíčového slova class Může obsahovat následující členy: –konstanty (constants) –datové položky (fields)

13/04/20152 Datový typ třída – class (2) –metody (methods) –vlastnosti (properties) –události (events) –operátory (operators) –indexery (indexers) –konstruktory instance (instance constructors) –destruktory (destructors) –statické konstruktory (static constructors) –vnořené deklarace typů (nested type declarations)

13/04/20153 Datový typ třída – class (3) Každý člen uvnitř třídy má svoji tzv. přístup- nost (accessibility) určující, jakým způsobem je nebo není přístupný (viditelný) zvenčí Nejčastěji se používá přístupnost: –public (veřejná): přístup k danému členu není nijak omezován člen je přístupný uvnitř i vně dané třídy –private (privátní, soukromá): daný člen je přístupný pouze uvnitř třídy, v níž je defi- nován jedná se o implicitní přístupnost k členu

13/04/20154 Datový typ třída – class (4) Datové položky (fields): –reprezentují proměnné spojené s objektem nebo s třídou –slouží k uchování informací Metody (methods): –funkce definované uvnitř třídy –implementují výpočet (akci), který může být pro- veden objektem nebo třídou –obsahují: seznam formálních parametrů (může být i prázdný) návratovou hodnotu (je-li návratovým typem metody typ void, pak metoda nevrací žádnou hodnotu)

13/04/20155 Datový typ třída – class (5) Konstruktory instancí (instance constructors): –speciální typy metod –slouží k vytvoření instance třídy (objektu) –mají stejný název jako třída –mohou obsahovat formální parametry –nemohou vracet žádnou hodnotu (ani void )  v jejich hlavičce není uvedený žádný návratový typ –jedna třída může obsahovat více konstruktorů (pře- těžování – overloading) –není-li definován žádný konstruktor, pak překladač automaticky vygeneruje konstruktor implicitní, kte- rý neobsahuje žádné parametry

13/04/20156 Datový typ třída – class (6) Příklad třídy: class Square { private int side; public Square(int initialSide) { side = initialSide; } public int GetArea() { return side*side; } }

13/04/20157 Datový typ třída – class (7) Na základě datového typu třída lze vytvořit její instanci Instanci typu třída označujeme jako objekt Objekt je vytvářen pomocí klíčového slova new (způsobí vyvolání konstruktoru) Příklad: Square sq; sq = new Square(5); nebo Square sq = new Square(5);

13/04/20158 Datový typ třída – class (8) Proměnná sq bude obsahovat odkaz, kde je v paměti uložený objekt (třída je referenční datový typ) Poznámka: –každá instance třídy je objektem, který zabírá svůj vlastní prostor v paměti a běží nezávisle na všech ostatních instancích Pro zpřístupnění členů třídy se používá tečko- vá notace: –identifikátor proměnné typu třída nebo typu třída –symbol tečka –identifikátor označující člen třídy

13/04/20159 Datový typ třída – class (9) Příklad: int s; Square sq = new Square(5); s = sq.GetArea(); Metody i datové položky mohou být deklaro- vány jako statické ( static ): –zpřístupňovány prostřednictvím třídy –před jejich zpřístupněním není nutné vytvářet in- stanci třídy (objekt) –nezávislé na konkrétní instanci třídy

13/04/ Datový typ třída – class (10) Poznámka: –metoda Main musí být statická, protože před je- jím voláním se nevytváří instance třídy, v níž je definována Statické třídy: –deklarovány s použitím klíčového slova static –může obsahovat pouze statické členy –nemůže obsahovat žádná data ani metody instancí –příklad: třídy Math, Convert, Console

13/04/ Jmenný prostor (1) Jmenný prostor (namespace) představuje po- jmenovaný kontejner pro další identifikátory (např. třídy) Používán k seskupení a k rozlišení identifiká- torů Různé jmenné prostory mohou obsahovat stejné identifikátory Dva identifikátory se stejným názvem nelze zaměnit, pokud se nacházejí v různých jmen- ných prostorech

13/04/ Jmenný prostor (2) V rámci jednoho souboru může být defino- váno více jmenných prostorů Více souborů může zahrnovat jeden jmenný prostor Jmenné prostory mohou být do sebe vzájemně vnořovány Jmenný prostor je možné definovat pomocí klíčového slova namespace Každý jmenný prostor má přístup typu public (nelze změnit)

13/04/ Jmenný prostor (3) Příklad: public class ClassA { } namespace NamespaceY { public class ClassB { } public class ClassC { } namespace NamespaceY { public class ClassA { } namespace NamespaceZ { public class ClassB { } Soubor1.csSoubor2.cs

13/04/ Jmenný prostor (4) Je-li identifikátor deklarovaný (definovaný) bez specifikovaného jmenného prostoru, pak jej automaticky překladač zařadí do globál- ního jmenného prostoru (global namespace) Identifikátor lze zpřístupnit pomocí označení jmenného prostoru (jmenných prostorů), např.: System.Console.WriteLine(…); kde: –System – jmenný prostor –Console – třída –WriteLine – metoda

13/04/ Jmenný prostor (5) Pomocí klíčového slova using je možné da- ný jmenný prostor zařadit do aktuálního obo- ru platnosti Pro zpřístupnění identifikátoru pak není nutné uvádět označení jmenného prostoru Příklad: using System; Console.WriteLine(…);

13/04/ Předávání parametrů metodám (1) Parametry předávané hodnotou: –deklarovány bez použití modifikátoru ref nebo out –u hodnotových typů: dochází k předání kopie dat ze skutečného parametru do parametru formálního změny provedené uvnitř metody nad formálním para- metrem nijak neovlivňují hodnotu parametru skuteč- ného –u referenčních typů: dochází pouze k předání odkazu jestliže metoda hodnotu přijatého objektu změní, pak se změna projeví i v původním objektu –skutečný parametr musí být v době volání inicia- lizovaný, tj. musí mít přiřazenou hodnotu

13/04/ Předávání parametrů metodám (2) Parametry předávané odkazem: –před formálním i skutečným parametrem musí být uveden modifikátor ref –nedochází k vytvoření nového paměťového místa pro formální parametr –formální parametr reprezentuje stejné paměťové místo, které náleží parametru skutečnému –všechny změny provedené nad formálním para- metrem se promítají do parametru skutečného –skutečný parametr musí být v době volání inicia- lizovaný, tj. musí mít přiřazenou hodnotu

13/04/ Předávání parametrů metodám (3) Parametry výstupní: –před formálním i skutečným parametrem musí být uveden modifikátor out –podobné chování jako u parametrů předávaných odkazem –všechny změny provedené nad formálním para- metrem se promítají do parametru skutečného –skutečný parametr nemusí být v době volání ini- cializovaný, tj. nemusí mít přiřazenou hodnotu –v průběhu metody mu musí být přiřazena hodnota

13/04/ Přetěžování metod (1) Přetěžování metod – overloading: –dovoluje deklarovat více než jedenu metodu se stejným oborem platnosti a se stejným jménem –jedna metoda se tak může vyskytovat ve více variantách –přetěžované metody musí mít rozdílný seznam formálních parametrů, tj. musí se lišit počtem formálních parametrů nebo jejich typy –na základě použitých skutečných parametrů (v době volání) je rozhodnuto, která varianta bude použita

13/04/ Přetěžování metod (2) Užitečné zejména v situaci, kdy je nutné pro- vádět stejnou operaci na různých datových typech Příklad: –metoda WriteLine třídy Console může být použita 19 různými způsoby (je definována v 19 různých variantách) –každá z nich má odlišnou sadu parametrů –např.: nemá žádný parametr  vypíše pouze prázdný řádek jako parametr má řetězec, který vypíše na standardní výstup jako parametr přebírá desetinné (celé) číslo a vypíše jej na stan- dardní výstup

13/04/ Konstanty (1) Členy třídy reprezentující konstantní hodno- ty, které se v průběhu programu nemohou měnit Jedná se o hodnoty, které musí být určitelné v době překladu programu Konstanty jsou statickými členy třídy, avšak při jejich definici se nepoužívá klíčové slovo static Lze je definovat pomocí klíčového slova const

13/04/ Konstanty (2) Příklad: class Physics { public const double h = E–34; public const double hbar = h/(2*Math.PI); public const double F = E4; }

13/04/ Vlastnosti (1) Členy třídy umožňující přístup k charakteris- tickým atributům objektu nebo třídy, např.: –délka řetězce –velikost fontu –titulek okna –jméno zákazníka –apod. Představují rozšíření datových položek: –pojmenované členy s daným datovým typem –používají stejnou syntaxi pro své zpřístupnění

13/04/ Vlastnosti (2) Na rozdíl od datových položek nereprezentují paměťové místo pro uložení hodnoty Překladač automaticky převádí zpřístupnění vlastností na volání přístupových metod Přístupové metody specifikují příkazy, jež mají být provedeny při: –čtení hodnoty vlastnosti –změně hodnoty vlastnosti (zápisu)

13/04/ Vlastnosti (3) Přístupové metody jsou zapisovány pomocí klíčových slov: –get : uvozuje přístupovou metodu pro čtení –set : uvozuje přístupovou metodu pro zápis Zapisovaná data jsou přístupovým metodám ( set ) předávána pomocí vestavěného (skry- tého) parametru value Konvence: –soukromé datové položky jsou psány s malým po- čátečním písmenem, zatímco veřejné vlastnosti s počátečním písmenem velkým

13/04/ Vlastnosti (4) Příklad: class Square { private int side; public int Side { get { return side; } set { side = value; } } }

13/04/ Vlastnosti (5) Nechť je dána deklarace: int s; Square sq = new Square(5); Vlastnost Side lze zpřístupnit: –pro čtení – např.: s = sq.Side; (volá sq.Side.get ) –pro zápis – např.: sq.Side = 2*s; (volá sq.Side.set ) Vlastnost může obsahovat pouze metodu: –get : vlastnost určena jen pro čtení –set : vlastnost určena jen pro zápis

13/04/ Vlastnosti (6) Omezení vlastnosti: –vlastnost nelze použít jako parametr s modifiká- torem ref nebo out (za vlastností se skrývá pří- stupová metoda nikoliv paměťové místo) –vlastnost může obsahovat jednu přístupovou me- todu get a jednu přístupovou metodu set (ne- smí obsahovat žádné jiné metody, datové polož- ky nebo vlastnosti) –přístupové metody nesmí přijímat žádné paramet- ry (zapisovaná data jsou u metody set předává- na prostřednictvím value ) –u vlastností nelze používat modifikátor const

13/04/ Vlastnosti (7) Jestliže metody get, resp. set provádějí pouze operace, které slouží k přečtení, resp. přiřazení do datové položky, pak je možné jejich příkazovou část vynechat Příklad: class Square { public int Side { get; set; } }

13/04/ Vlastnosti (8) Překladač automaticky vygeneruje odpovída- jící programový kód: class Square { private int _side; public int Side { get { return _side; } set { _side = value;} } }