Osnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)
|
|
- Emilie Ševčíková
- před 9 lety
- Počet zobrazení:
Transkript
1 Osnova přednášky Programové prostředky řízení Úvod do C# II. Členy (Members) Jmenné prostory (Namespaces) Třídy (Classes) Struktury (Structs) Pavel Balda Západočeská univerzita v Plzni, FAV, KKY 2 Členy (Members) Jmenné prostory a typy mají členy. Členy dané entity (objektu, jmenného prostoru) jsou dostupné pomocí kvalifikovaného jména: entita.jméno-člena Jmenný prostor (namespace): členy jsou jmenné prostory a typy deklarované uvnitř něj Struktura (struct): členy deklarované ve struktuře (např. jednoduché typy) a členy zděděné od třídy object Vyjmenovaný typ (enum): deklarované konstanty a členy zděděné z třídy System.Enum Třída (class): deklarované členy v této třídě a členy zděděné od bázové třídy kromě konstruktorů a destruktorů. Rozhraní (interface): deklarované členy v interfacu, členy všech bázových interfaců a členy zděděné od třídy object Pole (array) : členy zděděné z třídy System.Array Delegát (delegate): členy zděděné z třídy System.Delegate 3 Přístup ke členům Přístup ke členům je určen v deklaraci pomocí modifikátorů: public přístup není omezen protected přístup z typu v němž je deklarace a z odvozených typů internal přístup omezený na daný program protected internal přístup omezený na daný program nebo odvozené typy private přístup omezen na typ, v němž je deklarace uvedena Přístup ke členům (default je podtržen) Namespace vždy public, modifikátory se nesmějí uvádět Typy deklarované ve jmenných prostorech public nebo internal Členy tříd všech 5 druhů, default je private Struktury public, internal nebo private Rozhraní vždy public, modifikátory se nesmějí uvádět Vyjmenované typy vždy public, modifikátory se nesmějí uvádět 4 1
2 Jmenné prostory (namespaces) Kód programů v C# je organizován do jmenných prostorů namespace kvalifik.-identifikátor tělo-jmen.prostoru ; Středník na konci je nepovinný kvalifik.-identifikátor je složen z identifikátorů oddělených tečkami tělo-jmen.prostoru: direktivy-using deklarace-členů-jmen.prostoru Direktivy using i deklarace členů jmenného prostoru jsou nepovinné Deklarace jmenného prostoru se může nacházet v nejvyšší úrovni ve zdrojovém souboru (takový jmenný prostor se stává členem globálního jmenného prostoru) nebo se nachází uvnitř (vnitřní jmenný prostor) jiného jmenného prostoru (vnější jmenný prostor) V obou případech musí být jméno jmenného prostoru jedinečné uvnitř jej obsahujícího jmenného prostoru Všechny direktivy using musí být před deklarací členů jmenného prostoru Direktivy using Direktivy using usnadňují užívání jmenných prostorů a typů v nich definovaných. Existují ve dvou syntaxích: Direktiva pro import typů ze jmenného prostoru using jméno-jmenného-prostoru ; Příklad: using System.Windows.Forms; Direktiva pro náhradní jméno jmenného prostoru nebo typu using identifikátor = jméno-jmenného-prostoru-nebo-typu ; Používá se pro zkrácení odkazu pomocí zvoleného identifikátoru na nějaký jmenný prostor nebo typ: using Mutex = System.Threading.Mutex; 5 6 Jmenné prostory - příklady Členy jmenných prostorů 1. Ekvivalentní deklarace vnořených jmenných prostorů 2. Dvě třídy patřící do stejného plně kvalifikovaného jmenného prostoru 3. Direktiva using neimportuje vnořené jmenné prostory 4. Víceznačné jméno při importu několika jmenných prostorů Příklad 1 namespace N1.N2 class A class B nebo ekvivalentně namespace N1 namespace N2 class A class B Příklad 2 namespace N1.N2 class A namespace N1.N2 class B Příklad 3 namespace N1.N2 class A namespace N3 using N1.N2; class B: A Chyba, při deklaraci N3: namespace N3 using N1; class B: N2.A // N2 neznámý! Příklad 4 namespace N1 class A namespace N2 class A namespace N3 using N1; using N2; class B: A // A víceznačné! Členy jmenných prostorů mohou být vnořené jmenné prostory nebo deklarace typů: Třídy class Struktury struct Rozhraní interface Vyjmenovaného typu enum Delegátu delegate K deklarovaným typům ve jmenných prostorech je přístup public nebo internal, default je internal. Vnořené typy lze deklarovat ve třídách a ve strukturách 7 8 2
3 Třídy (Classes) Třída je datová struktura, která může obsahovat: Datové členy (konstanty a položky) Členské funkce (metody, vlastnosti, události, operátory, konstruktory a destruktory) Vnořené typy Třídy mohou využívat dědičnost (inheritance) Odvozená třída (derived class) může rozšiřovat a specializovat třídu základní (base class) Deklarace tříd atributy modifikátory-třídy class identifikátor bázetřídy deklarace-členů-třídy ; Atributy (příští přednáška), modifikátory třídy, báze třídy a středník jsou nepovinné Modifikátory tříd Deklarace třídy může obsahovat modifikátory public, protected, internal, private určují dostupnost třídy (viz Přístup ke členům) new přípustný u vnořených tříd. Nová třída skrývá stejnojmennou třídu předka abstract označuje neúplnou třídu, která je určena pouze jako bázová třída Nelze ji přímo instancovat, pokud se o to pokusíme, hlásí se chyba překladu Může obsahovat abstraktní členy Nemůže být uzavřená (sealed) sealed označuje třídu, od které nelze odvozovat nové třídy Používá se pro zabránění neúmyslnému odvozování Nemůže být abstraktní třídou Umožňuje optimalizovat kód (převádět virtuální metody na nevirtuální) 9 10 Specifikace báze třídy Deklarace třídy může obsahovat specifikaci přímé báze třídy, definující bázovou třídu a rozhraní implementovaná třídou báze-třídy : typ-třídy : seznam-typů-rozhraní : typ-třídy, seznam-typů-rozhraní Příklady class A class A: B class B: A class B: C class C: A // Chyba! // Cyklická závislost Členy tříd Členy tříd mohou být konstanty, položky (fields), metody, vlastnosti, události, indexery, operátory, konstruktory, destruktory, statické konstruktory, typy Třída dědí (obsahuje) členy své přímé bázové třídy kromě konstruktorů, destuktorů Dědičnost je transitivní: je-li C odvozena od B a B je odvozena od A, pak C dědí všechny členy B a též všechny členy A. Vnořené typy (nested types) jsou typy deklarované uvnitř tříd a struktur class A class B // třída B je vnořený typ v A static void F() Console.WriteLine("A.B.F");
4 Třídy - Konstanty Konstanta je člen reprezentující konstantní hodnotu, která může být vypočtena ve fázi překladu Deklarace konstanty atributy modifikátory-konstant const typ deklararátory-konstant; Atributy a modifikátory konstant jsou nepovinné Modifikátory mohou být new, public, protected, internal, private Deklarátory konstant se oddělují čárkami, každý je ve tvaru: identifikátor = konstantní-výraz Příklad: Ekvivalentní zápis class A class A public const double public const double X = 1.0; X = 1.0, Y = 2.0, Z = 3.0; public const double Y = 2.0; public const double Z = 3.0; Třídy Položky (fields) (1/2) Položka (field) je člen reprezentující proměnnou třídy (objektu) Deklarace položky atributy modifikátory-položek typ deklararátory-proměnných; Atributy a modifikátory položek jsou nepovinné Modifikátory mohou být new, public, protected, internal, private, static, readonly, volatile Deklarátory položek se oddělují čárkami, každý je ve tvaru: identifikátor identifikátor = výraz identifikátor = inicializátor-pole Příklad: Ekvivalentní zápis class A class A public static int public static int X = 1; X = 1, Y, Z = 100; public static Y; public static Z = 100; Třídy Položky (fields) (2/2) Statické položky v deklaraci je uveden modifikátor static Nejsou součástí konkrétní instance, existuje jen jedno umístění v paměti bez ohledu na vytvořený počet instancí objektu Položky instancí v deklaraci není uveden modifikátor static Každá instance má vlastní množinu položek instancí své třídy Položky pouze pro čtení deklarovány s modifikátorem readonly Do položek lze přiřazovat hodnoty v deklaraci, v konstruktoru instance pro položky instancí nebo ve statickém konstruktoru pro statické položky. Pokus o přiřazení v jiném kontextu vede k chybě překladu Nestálé (volatile) položky deklarace obsahuje volatile Zakazuje překladači optimalizační techniky vedoucí k změně pořadí instrukcí, které by mohly vést k nepředvídatelným výsledkům u více threadových programů bez synchronizace (např. příkazem lock) Položky volatile musí mít jeden z typů: Referenční typ byte, sbyte, short, ushort, int, uint, char, float nebo bool Vyjmenovaný typ založený na typech byte, sbyte, short, ushort, int, uint 15 Třídy Inicializace položek Deklarace položek mohou obsahovat inicializaci, která odpovídá přiřazovacím příkazům Pro statické položky se provádí při inicializaci dané třídy Pro položky instancí se vykonává při vytváření instance třídy Položky (statické i instancí) jsou inicializovány vždy. Pokud není inicializace uvedena, inicializují se na default hodnoty (vyplněním nulami). Na rozdíl od C++ nemohou být položky nikdy neinicializovány Příklad: using System; class Test static bool b; int i; static void Main() Test t = new Test(); Console.WriteLine("b = 0, i = 1", b, t.i); Vytváří výstup: b = False, i =
5 Třídy Metody (methods) Metoda je člen implementující výpočet nebo akci s danou třídou (objektem) Deklarace metody hlavička-metody tělo-metody Tělo metody je blok nebo prázdný příkaz Hlavička metody atributy modifikátory-metody návratový-typ jméno-člena ( seznam-formálních-parametrů ) ; Atributy, modifikátory a seznam formálních parametrů jsou nepovinné Modifikátory mohou být new, public, protected, internal, private, static, virtual, sealed, override, abstract, extern Návratový typ je buď název typu nebo void (metoda nic nevrací) Jméno člena identifikátor typ-rozhraní.identifikátor Třídy Parametry metod (1/3) Parametry metod jsou deklarovány v seznamu formálních parametrů pevné-parametry pevné-parametry, pole-parametrů pole-parametrů Pevné parametry tvoří seznam parametrů pevný-parametr oddělených čárkami. Pevný-parametr je definován: atributy modifikátor-parametru typ identifikátor Atributy a modifikátor jsou nepovinné, modifikátor může nabývat jedné ze dvou hodnot: ref nebo out Pole parametrů atributy params typ-pole identifikátor Třídy Parametry metod (2/3) Hodnotové parametry deklarovány bez modifikátorů Skutečný parametr při volání metody musí být implicitně konvertovatelný na hodnotový parametr Referenční parametr deklarován s modifikátorem ref Referenční parametr odpovídá stejnému místu v paměti jako proměnná, která je argumentem v okamžiku volání Výstupní parametr deklarován s modifikátorem out Podobný referenčnímu parametru, proměnná předávaná jako out parametr nemusí být inicializována před voláním, v metodě se považuje za nezinicializovanou (jako lokální proměnná) a před návratem z metody musí být přiřazena Příklad using System; class Test static void Swap(ref int x, ref int y) int temp = x; x = y; y = temp; static void Main() int i = 1, j = 2; Swap(ref i, ref j); //Pozor píše se ref (out)! Console.WriteLine("i = 0, j = 1", i, j); 19 Třídy Parametry metod (3/3) Pole parametrů parametr deklarovaný s modifikátorem params Pokud seznam parametrů obsahuje pole parametrů, musí být posledním parametrem a musí být jednodimenzionálním polem. Při volání mohou být argumenty zapsány dvojím způsobem Jedním výrazem, implicitně konvertovatelným na typ v poli parametrů Nulou nebo několika argumenty, kde každý argument je výraz typu implicitně konvertovatelného na typ prvku v poli parametrů Příklad using System; class Test static void F(params int[] args) Console.Write("Array contains 0 elements:", args.length); foreach (int i in args) Console.Write(" 0", i); Console.WriteLine(); static void Main() int[] arr = 1, 2, 3; F(arr); F(10, 20, 30, 40); F(); Tiskne výstupy: Array contains 3 elements: Array contains 4 elements: Array contains 0 elements: 20 5
6 Třídy Statické a instanční metody Statické metody deklarovány s modifikátorem static Nepracují s určitou instancí Nesmějí používat this, jinak je hlášena chyba překladu Pokud jsou použity ve tvaru E.M, označuje E jméno třídy a M jméno metody Metody instancí deklarovány bez modifikátoru static Pracují s instancí třídy Mohou používat this Pokud jsou použity ve tvaru E.M, označuje E jméno instance a M jméno metody Třídy Virtuální metody Nevirtuální metody neobsahují ve své deklaraci modifikátor virtual Implementace je shodná ve třídě ve které jsou zavedeny i ve třídách odvozených Virtuální metoda je taková metoda, jejíž deklarace obsahuje modifikátor virtual Implementace virtuální metody může být nahrazena odvozenými třídami Při běhu se podle typu instance rozhoduje, která metoda se zavolá Třídy Virtuální metody: Příklad Třídy Override metody Příklad: rozdíl mezi virtuální a nevirtuální metodou using System; class A public void F() Console.WriteLine("A.F"); public virtual void G() Console.WriteLine("A.G"); class B: A new public void F() Console.WriteLine("B.F"); public override void G() Console.WriteLine("B.G"); class Test static void Main() B b = new B(); A a = b; a.f(); b.f(); a.g(); // volá b.g, ne a.g! b.g(); Tiskne výstupy: A.F B.F B.G B.G 23 Override metoda je taková metoda, jejíž deklarace obsahuje modifikátor override Override metoda mění ( přebíjí ) implementaci existující zděděné virtuální metody (viz příklad na předchozí stránce) Naproti tomu virtuální metoda s modifikátorem virtual zavádí novou metodu Příklad pozor na vynechání override! class A public virtual void F() class B: A public virtual void F() // Warning, schování zděděné F() // - dá se odstranit přidáním modifikátoru new 24 6
7 Třídy Sealed a Abstract metody Použití modifikátoru sealed chrání sealed metody před možným přepsáním v odvozených třídách Je-li použit modifikátor sealed, musí být spolu s ním použit i override Abstraktní metoda používá modifikátor abstract Zavádí novou virtuální metodu, avšak bez implementace, proto tělo metody obsahuje jen středník. Implementaci musí dodat odvozené třídy Příklad nelze volat implementaci abstraktní metody z předka abstract class A public abstract void F(); class B: A public override void F() base.f(); // Chyba! base.f je abstraktní Třídy Externí metody Externí metody používají modifikátor extern Typicky jsou externí metody implementovány v jiném jazyku než C# Tělo metody je prázdné, obsahuje jen středník Modifikátor extern se typicky používá ve spolupráci s atributem DllImport Tím je umožněno, aby byly externí metody implementovány v DLL knihovnách [DllImport( kernel32, SetLastError=true)] static extern bool CreateDirectory(string name, SecurityAttribute sa); Třídy Vlastnosti (properties) Vlastnost je člen umožňující přístup k charakteristikám dané třídy (objektu), např. délka řetězce, velikost fontu, apod. Deklarace vlastnosti atributy modifikátory-vlastnosti typ jméno-člena deklarace-akcesorů Atributy a modifikátory jsou nepovinné Modifikátory mohou být new, public, protected, internal, private, static, virtual, sealed, override, abstract, extern Jméno člena identifikátor typ-rozhraní.identifikátor Modifikátory vlastností jsou velmi podobné s modifikátory metod (výše) Týká se modifikátorů static, virtual, sealed, override a abstract 27 Třídy Accessory vlastností Accessor vlastnosti specifikuje příkazy pro čtení a zápis vlastnosti Deklarace accessorů deklarace-accessoru-get deklarace-accessoru-set deklarace-accessoru-set deklarace-accessoru-get Deklarace druhého accessoru je nepovinná Deklaraceaccessoru get Atributy get tělo-accessoru Deklarace accessoru set Atributy set tělo-accessoru V obou deklaracích jsou atributy nepovinné. Tělo accessoru je buď blok nebo ; (středník) Příklad public class Button: Control private string caption; public string Caption get return caption; set if (caption!= value) caption = value; Paint( ); public override void Paint(Graphics g, Rectangle r) // Zde je kód pro vykreslení 28 7
8 Třídy Události (events) Třídy Události: Příklad Událost je člen umožňující třídě (objektu) poskytovat notifikace (oznámení). Klient může připojit svůj kód k události pomocí tzv. handlerů událostí (event handlers) Deklarace události atributy modifikátory-události event typ deklarátory-proměnných ; atributy modifikátory-události event typ jméno-člena deklarace-accessorů-události Atributy a modifikátory jsou nepovinné Modifikátory mohou být new, public, protected, internal, private, static, virtual, sealed, override, abstract, extern Události deklarované pomocí accessorů události (druhý případ) jsou mimo rámec přednášky Typ události musí být typ delegáta odvozený od třídy System.Delegate (příště) Pro přidání a odstranění handleru události se používají operátory += a -= 29 Příklad ukazuje, jak přidat handlery událostí k třídě Button public delegate void EventHandler(object sender, EventArgs e); public class Button: Control public event EventHandler Click; public class LoginDialog: Form Button OkButton; Button CancelButton; public LoginDialog() OkButton = new Button(...); OkButton.Click += new EventHandler(OkButtonClick); CancelButton = new Button(...); CancelButton.Click += new EventHandler (CancelButtonClick); void OkButtonClick(object sender, EventArgs e) // Handle OkButton.Click event void CancelButtonClick(object sender, EventArgs e) // Handle CancelButton.Click event Použití události vypadá jako by událost byla položka třídy Button 30 Třídy Indexery Třídy Indexery: Příklad Indexer je člen umožňující, aby byl objekt indexován stejným způsobem jako pole (array). Deklarace indexeru atributy modifikátory-indexeru deklarátor-indexeru deklarace-accessorů Atributy a modifikátory jsou nepovinné Modifikátory mohou být new, public, protected, internal, private, virtual, sealed, override, abstract, extern Pro modifikátory platí stejná pravidla jako u metod Deklarace accessorů je shodná s deklarací u vlastností (properties) Deklarátor indexeru typ this [ seznam-formálních-parametrů ] typ-rozhraní. this [ seznam-formálních-parametrů ] Typ v deklarátoru specifikuje typ položky pole Seznam formálních parametrů má stejný tvar jako u metod s výjimkou, že indexer musí mít alespoň jeden parametr a nelze užívat modifikátory ref a out 31 using System; class BitArray int[] bits; int length; public BitArray(int length) if (length < 0) throw new ArgumentException(); bits = new int[((length - 1) >> 5) + 1]; this.length = length; public int Length get return length; public bool this[int index] get if (index < 0 index >= length) throw new IndexOutOfRangeException(); return (bits[index >> 5] & 1 << index)!= 0; set if (index < 0 index >= length) throw new IndexOutOfRangeException(); if (value) bits[index >> 5] = 1 << index; else bits[index >> 5] &= ~(1 << index); 32 8
9 Třídy Operátory (1/2) Třídy Operátory (2/2) Operátor je člen definující význam operátoru ve výrazu, kde se vyskytuje daná třída Deklarace operátoru atributy modifikátory-operátoru deklarátor-operátoru tělo-operátoru Atributy jsou nepovinné Modifikátory mohou být public, static, extern Tělo operátoru je blok nebo ; (středník) Deklarátor operátoru typ operator přetížitelný-unární-operátor ( typ identifikátor ) typ operator přetížitelný-binární-operátor ( typ identifikátor, typ identifikátor ) implicit operator typ ( typ identifikátor ) explicit operator typ ( typ identifikátor ) Poslední dva případy jsou tzv. konverzní operátory Přetížitelný unární operátor je jedním z operátorů: + -! ~ true false Přetížitelný binární operátor je jedním z operátorů: + - * / % & ^ << >> ==!= > < >= <= Pro deklarace operátorů platí následující pravidla Deklarace operátorů musí obsahovat současně modifikátory public a static Parametry operátorů musí být hodnotového typu. Při použití ref a/nebo out parametrů je hlášena chyba překladu Nelze deklarovat dva operátory se stejnou signaturou Binární operátory Musí mít dva parametry, alespoň jeden musí mít typ třídy (struktury), ve které je deklarován Následující binární operátory vyžadují deklaraci po dvojicích operator == a operator!= operator > a operator < operator >= a operator <= Třídy Operátory: Příklad public class IntVector public IntVector(int length)... public int Length... // read-only property // read-write indexer public int this[int index]... public static IntVector operator ++(IntVector iv) IntVector temp = new IntVector(iv.Length); for (int i = 0; i < iv.length; i++) temp[i] = iv[i] + 1; return temp; class Test static void Main() IntVector iv1 = new IntVector(4); // vector of 4 x 0 IntVector iv2; iv2 = iv1++; // iv2 contains 4 x 0, iv1 contains 4 x 1 iv2 = ++iv1; // iv2 contains 4 x 2, iv1 contains 4 x 2 Třídy Operátoryis a as Operátor is se používá pro kontrolu, zda typ objektu při běhu (run-time type) po vyhodnocení výrazu e je kompatibilní s daným typem T e is T Je-li e rovno null, vrací false Je-li e typu T (a není null), vrací true Je-li e typu R pak se vrací true pokud existuje implicitní konverze z R na T (R je odvozený od T) int i = 0; char[] s = 'a','h','o','j'; Console.WriteLine("i is object: 0; s is string: 1", i is object, s is string); Vypíše výstup: i is object: True; s is string: False Operátor as se používá pro explicitní konverzi výrazu e na daný referenční typ T e as T Podobný explicitní konverzi výrazu e na typ T, avšak nikdy nezpůsobí výjimku, pokud konverze není možná, vrací null Pokud nelze konverzi nikdy provést, hlásí se chyba překladu V obou operátorech se používají implicitní konverze a zabalování (boxing) Operátory nepodporují uživatelem definované konverze!
10 Třídy Konstruktory instancí Třídy Statické konstruktory Konstruktor instance je člen, implementující akce nezbytné pro inicializaci instance třídy Deklarace konstruktoru atributy modifikátory-konstruktoru deklarátor-konstruktoru tělo-konstruktoru Atributy a modifikátory jsou nepovinné Modifikátory mohou být public, protected, internal, private, extern Tělo konstruktoru je blok nebo ; (středník) Deklarátor konstruktoru identifikátor ( seznam-formálních-parametrů ) inicializátor-konstruktoru Identifikátor musí být jménem třídy, ve které je konstruktor deklarován Pro seznam formálních parametrů platí stejná pravidla jako u metod Inicializátor konstruktoru je nepovinný. Není-li uveden je to jako : base() Inicializátor konstruktoru : base ( seznam-argumentů ) : this ( seznam-argumentů ) Seznam argumentů je nepovinný Specifikují jiné konstruktory, které budou vykonány předtím, než se vstoupí do těla konstruktoru Konstruktory instancí se nedědí! 37 Statický konstruktor je člen, implementující akce nezbytné pro inicializaci třídy Deklarace statického konstruktoru atributy modifikátory-statického-konstruktoru identifikátor ( ) tělo-statického-konstruktoru Atributy a modifikátory jsou nepovinné Modifikátory mohou být extern static nebo static extern. Modifikátor extern je nepovinný Tělo konstruktoru je blok nebo ; (pro modifikátor extern) Statické konstruktory se nedědí a nelze je volat přímo Statický konstruktor třídy se volá nejvýše jednou v dané aplikaci a je volán při první z následujících činností: Při vytváření instance dané třídy Při volání nějaké statické metody dané třídy 38 Třídy Destruktory Destruktor je člen, implementující akce nezbytné pro zrušení (destrukci) instance dané třídy Deklarace destruktoru atributy extern ~ identifikátor ( ) tělo-destruktoru Atributy a modifikátor extern jsou nepovinné Identifikátor musí být jménem třídy, ve které je destruktor deklarován Tělo konstruktoru je blok nebo ; (pro modifikátor extern) Destruktory se nedědí a nelze je volat explicitně Instance se stává způsobilou pro destrukci, pokud ji nemůže používat žádný kód. Instanci uklízí garbage collector Destruktory nemohou být přetížené (nemají parametry), proto třída může mít nejvýše jeden destruktor Destruktory jsou volány v pořadí od nejvýše odvozené třídy k níže odvozeným třídám 39 10
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;
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,
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Ú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
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 =
PŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# 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 Architektura.NET Historie Vlastnosti
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í
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
Jazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
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
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
Ú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
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
Virtuální metody - polymorfizmus
- polymorfizmus - potomka lze použít v místě, kde je možné použít předka - v dosud probraných situacích byly vždy volány funkce, které jsou známy již v době překladu. V situaci, kdy v době překladu není
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
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ů
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
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
Pokud neuvedeme override, vznikne v synu nová (nevirtuální) metoda (a pochopitelně se nezavolá, jak bychom
Poznámky k virtuálním metodám aneb co když zkoušíme překladač zlobit... Pokud neuvedeme override, vznikne v synu nová (nevirtuální) metoda (a pochopitelně se nezavolá, jak bychom chtěli). Pokud neuvedeme
Jazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem
Jazyk C++ 1 Blok 3 Objektové typy jazyka C++ Studijní cíl Ve třetím bloku bude představen a rozebrán nejdůležitější objektový typ jazyka C++ a to sice třída. Po absolvování bloku bude student schopen navrhovat
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í
Jazyk C++ I. Šablony 2
Jazyk C++ I Šablony 2 AR 2013/2014 Jazyk C++ I Třídy template class TVektor { T *a; int n; static int PocInstanci; public: TVektor(int _n = 0) : n(_n) { a = new T[n]; PocInstanci++; } ~TVektor()
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
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
4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ
4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ OBJEKT Program v Javě je staticky strukturován na třídy, jejichž instance (objekty) za běhu dynamicky programu vznikají a zanikají. Objekt je nejprve
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ů
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
Programování v C++ 1, 5. cvičení
Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
Programování v C++ 1, 6. cvičení
Programování v C++ 1, 6. cvičení dědičnost, polymorfismus 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
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
Programování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
Chování konstruktorů a destruktorů při dědění
Dědičnost V objektově orientovaném programování je dědičnost způsob, jak vytvořit novou třídu použitím již existujících definic jiných tříd. Takto vytvořené třídy přebírají vlastnosti a metody svého předka
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
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,
Ú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
Dědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20
Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
URČITÝM ZPŮSOBEM PODOBNÉ
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 (tělo obsahuje buňky, letadlo součásti). Objekty URČITÝM
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
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
Objektově orientované programování
10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
IRAE 07/08 Přednáška č. 7. Začátek (head)
Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků
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í
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
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á
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í
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
NPRG031 Programování II 1 / :47:55
NPRG031 Programování II 1 / 43 23. 2. 2016 11:47:55 Objekty Svět se skládá z objektů! Objekt = data + funkce (metody) konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty
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
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
Mnohotvarost (polymorfizmus)
Mnohotvarost (polymorfizmus) TYPY MNOHOTVAROSTI... 2 PŘETĚŽOVÁNÍ METOD, PŘETĚŽOVÁNÍ OPERACÍ... 3 PŘETÍŽENÍ OPERÁTORŮ... 4 ČASTO PŘETĚŽOVANÉ OPERÁTORY... 4 PŘEPISOVÁNÍ... 7 VIRTUÁLNÍ METODY... 10 SEZNAM
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
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# - 1. část BI-DNP Evropský sociální fond
SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ
SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Vstupy a výstupy pokračování Kódování textů Texty (řetězce nebo znaky) v jazyce C# jsou v paměti uloženy v kódování označovaném běžně Unicode (kódová stránka 1200).
Jazyk C++ I. Šablony
Jazyk C++ I Šablony AR 2013/2014 Jazyk C++ I Úvod Zatím známe programovací styly: Strukturované programování, Objektově orientované programovaní. AR 2013/2014 Jazyk C++ I 2 Příklady void Print(const int&
Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.
Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné
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
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
Úvod Přetěžování Generika Kolekce Konec. Programování v C# Další jazykové konstrukce. Petr Vaněček 1 / 31
Programování v C# Další jazykové konstrukce Petr Vaněček 1 / 31 Obsah přednášky Přetěžování metody operátory Generika Kolekce třídy rozhraní 2 / 31 Překrytí vs. přetížení Rozdíl ve způsobu deklarace metody/operátoru
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
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: Datové typy Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 5 Číslo: V/5 Programování v jazyce
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
Ú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í
Mělká a hluboká kopie
Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta
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í
NMIN201 Objektově orientované programování 2016/17 1 / :03:29
NMIN201 Objektově orientované programování 2016/17 1 / 42 21. 11. 2016 11:03:29 Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty
konstruktory a destruktory (o)
konstruktory a destruktory (o) - slouží k ovlivnění vzniku (inicializace) a zániku (úklid) objektu - základní myšlenkou je, že proměnná by měla být inicializována (nastavena do počátečního stavu) a zároveň
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ář
Dědění, polymorfismus
Programování v jazyce C/C++ Ladislav Vagner úprava Pavel Strnad Dědění. Polymorfismus. Dnešní přednáška Statická a dynamická vazba. Vnitřní reprezentace. VMT tabulka virtuálních metod. Časté chyby. Minulá
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ů
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
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
3. Třídy. Základní pojmy objektového programování. Třídy
3. Třídy Základní pojmy objektového programování Jak už víme, je Java objektovým programovacím jazykem. V úvodu této kapitoly si objasníme základní pojmy objektové teorie. Objekt představuje souhrn dat
NPRG031 Programování II --- 2/2 Z, Zk
NPRG031 Programování II --- 2/2 Z, Zk paralelka Y St 14:00-15:30 v S3 Pavel Töpfer Kabinet software a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer
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í
Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
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ý
IW5 - Programování v.net a C# 4 Pokročilé konstrukce C#
4 - Pokročilé konstrukce C# IW5 - Programování v.net a C# Strana 1 Obsah přednášky Výjimky Delegáti Události Lambda výrazy Strana 2 Výjimky a jejich zpracování Slouží k ošetření výjimečných (chybových)
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ů
IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);
Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());
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
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,
Seminář Java IV p.1/38
Seminář Java IV Seminář Java IV p.1/38 Rekapitulace Deklarace tříd Proměnné, metody, konstruktory, modifikátory přístupu Datové typy primitivní, objektové, pole Dědičnost Řídící konstrukce Podmínky, cykly
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ě
PB161 Programování v jazyce C++ Přednáška 9
PB161 Programování v jazyce C++ Přednáška 9 Právo friend Přetěžování operátorů Nikola Beneš 16. listopadu 2015 PB161 přednáška 9: friend, přetěžování operátorů 16. listopadu 2015 1 / 30 Reklama PB173 Tematicky
PB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Dynamická alokace Kopírovací konstruktor Přetypování v C++ Nikola Beneš 12. října 2015 PB161 přednáška 4: dynamická alokace, kopírovací konstruktor, casting
Funkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné
Základy C++ I. Jan Hnilica Počítačové modelování 18
Základy C++ I 1 Přechod z C na C++ jazyk C++ je nadmnožinou jazyka C z hlediska syntaxe se jedná o velmi podobné jazyky, spolu s dalšími jazyky "céčkovské" rodiny, jako je např. C# každý platný program
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ů
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