Teoretické minimum z PJV
|
|
- Kamil Král
- před 9 lety
- Počet zobrazení:
Transkript
1 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 public class do závěrečné závorky:. Třída: 1. Je prostředek pro členění programu do menších celků umožňuje sdružovat dohromady související třídní (static) proměnné a třídní (static) metody. 2. Deklarací instančních proměnných definuje strukturu objektů tj. z jakých položek (fields) se budou skládat objekty této třídy. 3. Deklarací instančních metod určuje jaké služby budou objekty této třídy poskytovat. 4. Definicí konstruktorů určuje, jak je možno objekty po jejich vzniku inicializovat. Příklad jednoho souboru (Vektor.java) zdrojového textu programu (tzv. kompilační jednodnotka): // deklarace balíčku, ve kterém je třída umístěna: package vektory; // import klauzule import java.lang.*; // začátek deklarace třídy: public class Vektor extends Object { // Konstanta, která může být deklarována v kterékoliv tříd ě,ale logicky // patří do třídy Vektor: public static final vektory.vektor NULOVY_VEKTOR = new vektory.vektor(); // Třídní (statická) metoda, která mů že být deklarována v kterékoliv tříd ě, // ale logicky patří do třídy Vektor: public static vektory.vector soucetvectoru(vektory.vector a, vektory.vector b) { return new vektory.vector(a.x + b.x, a.y + b.y); // Statická proměnná, která může být deklarována v kterékoliv tříd ě, // ale logicky patří do třídy Vektor: public static double delkavsechvytvorenychvektoru; // Instanční proměnné tj. položky (fields) objekt ů třídy Vektor: double x; double y; // Instanční metody (tj. služby poskytované objekty třídy Vektor): public double delka() { return Math.sqrt(this.x * this.x + this.y * this.y); 1
2 public void inverze() { this.x = this.x; this.y = this.y // Konstruktory, které inicializují objekty třídy Vektor obvykle // hodnotami svých argument ů: Vektor(double x, double y) { super(); this.x = x; this.y = y; Vektor.delkaVsechVytvorenychVektoru += this.delka(); Vektor() { this(0, 0); // konec deklarace třídy Vektor Objekt (instance třídy) je souvislý paměťový prostor, ve kterém jsou umístěny instanční proměnné deklarované ve třídě. Prostor je alokován v paměťové oblasti nazývané heap. Objekt je jednoznačně identifikován referenční hodnotou (zkráceně referencí). Objekt vzniká operátorem new. Vznikem objektu rozumíme alokaci paměťového místa na heapu a dále inicializaci tohoto místa některým konstruktorem. Při vzniku objektu současně automaticky vzniká reference na tento objekt. V programu může současně existovat více referencí na jeden objekt, protože přiřazováním se reference duplikuje. Pomocí reference lze: přistupovat k položkám objektu, volat instanční metody objektu Objekt je v programu dostupný pouze tehdy, pokud nezanikly všechny jeho reference. Zánikem poslední reference na objekt přestane být objekt z programu dostupný a jeho alokovaný paměťový prostor může být uvolněn pro další použití (garbage collecting). Objekt: není proměnná, takže se nedeklaruje a nemá jméno a typ (v C++ může být objekt proměnná), není hodnota, takže jej nelze přiřazovat do proměnných, předávat jako parametr nebo vracet jako výsledek funkce naproti tomu referenci na objekt lze (v C++ může být objekt hodnota), uchovává hodnoty ve svých položkách (instančních proměnných), poskytuje služby (operace) deklarované jako instanční metody třídy objektu. Operátor this Služby, které objekt poskytuje, jsou definovány instančními metodami třídy objektu. Instanční metody tedy musí mít k tomuto objektu přístup a tedy musí mít k dispozici jeho referenci. Při volání instanční metody se před její jméno uvádí referenční výraz, jehož hodnotou je právě tato 2
3 požadovaná reference: Vektor v = new Vektor(1,2); System.out.println(v.delka()); // v je výraz referenčního typu Reference na objekt se předá instanční metodě stejným mechanismem jako ostatní skutečné parametry (argumenty). Tento speciální "skrytý parametr" však není deklarovaný, a proto musí být jeho atributy (tj. jméno a typ) definovány implicitně: { je referenčního typu třídy, ve kterém je instanční metoda deklarovaná jeho "jméno" je tvořeno klíčovým slovem this: public double delka( /*jakoby zde bylo deklarováno: Vektor this */) return Math.sqrt(this.x * this.x + this.y * this.y); Obdobným způsobem jako instančním metodám se také konstruktoru předává reference na objekt, který má být inicializován. V tomto případě je reference výsledkem operátoru new, který objekt vytvořil. Reference, kterou vrací operátor new se tedy využije dvojím způsobem: předá se dovnitř konstruktoru jako hodnota "skrytého parametru" this, vrátí se jako výsledek, který je možno dále např. uložit do proměnné: Dědičnost Vektor v = new Vektor(/* reference vrácená oprátorem new */ 1,2); Dědění není operace, která by se prováděla v nějakém okamžiku. Dědičnost je vztah mezi dvěma třídami (resp. rozhraními). V tomto vztahu je vždy jedna třída (resp rozhraní) tzv. nadtřídou a druhá tzv. podtřídou. Jsou možné všechny kombinace s výjimkou, že rozhraní nemůže být podtřídou třídy. Třída (resp. rozhraní) obsahuje všechny proměnné a metody které: jsou ve třídě přímo deklarovány, jsou deklarovány v nadtřídě a nejsou označeny private (říkáme nepřesně, že jsou do třídy zděděny). Každá třída s výjimkou třídy java.lang.object má vždy právě jednu nadtřídu, která je třída, a žádnou nebo více nadtříd které jsou rozhraní. Abstrakce a překrývání Deklarace instanční metody se skládá z hlavičky (header) a těla (body). Hlavička vyjadřuje kontrakt (smlouvu) mezi uživatelem metody (tj. kódem, kde se metoda volá) a poskytovatelem metody (tj. třídou, kde je deklarovaná). Tělo metody definuje implementaci (tj. realizaci) tohoto kontraktu. Tělo metody může být v deklaraci vynecháno. Takovou metodu nazýváme abstraktní (neúplnou) a musí být označena klíčovým slovem abstract. Pokud je ve třídě alespoň jedna abstraktní metoda, nazýváme celou třídu abstraktní a musí být sama označena klíčovým slovem abstract. Od takové třídy nemůžeme vytvářet objekty, protože tyto objekty by nemohly plnit svůj kontrakt. Zděděnou instanční metodu je možno tzv. překrýt (override). Přitom, 3
4 pokud je zděděná metoda abstraktní, je mechanismem překrytí možno doplnit chybějící tělo, pokud není abstraktní, je možno změnit původní implementaci (tělo) za jinou. Mechanismem překrýváním vzniká skupina metod, které mají stejnou hlavičku (tedy stejný kontrakt), avšak liší se svými těly (tedy implementacemi kontraktu). Tato skupina metod reprezentuje nějakou obecnou vlastnost (delka), operaci (inverze), která je společná pro všechny třídy, ve kterých jsou jednotlivé překrývající se metody deklarovány. Rozhraní Rozhraní je speciální třída, ve které jsou deklarovány pouze kontrakty tedy pouze abstraktní metody. Nelze tedy stejně jako u abstraktních tříd vytvářet od rozhraní objekty. Polymorfismus a pozdní vázání Hodnotou výrazu referenčního typu může být reference na objekt třídy referenčního typu, ale také reference na objekt její libovolné podtřídy. V tomto smyslu je referenční typ polymorfní (mnohotvarý), protože obsahuje reference na objekty různého "tvaru": // do o se může přiřadit reference na objekt libovolné třídy Object o =...; Vzhledem k polymorfismu referenčních typů a překrývání metod nelze při kompilaci stanovit, která konkrétní instanční metoda bude v daném místě volána. Proto se konkrétní metoda určuje až při výpočtu podle skutečné třídy referencovaného objektu. Tato vlastnost se nazývá pozdní vázání: Hodnota //která konkrétní metoda tostring() se bude volat? String s = o.tostring(); Elementární část informace (celá čísla, desetinná čísla, logické hodnoty, znaky, reference). 1. Hodnoty jsou: a) Zapsány přímo ve zdrojovém kódu programu jako literály (znak: 'a', celé číslo: 99, celé číslo v hexadecimálním tvaru: 0xAA, desetinné číslo: 2.72, logická hodnota pravda: true,...). b) Načteny ze vstup některou ze vstupních operací (readint, readdouble,...) c) Vytvořeny výpočtem operace ve výrazu. 2. Hodnota je vždy nějakého typu. 3. Mezi provedením dvou po sobě jdoucích příkazů jsou hodnoty uloženy pouze v proměnných. V proměnné může být uložena pouze hodnota takového typu, který je proměnné přiřazen deklarací. 4. Přiřazením jedné proměnné do druhé vznikne kopie hodnoty. 5. Hodnoty zanikají: a) Přepsáním hodnoty v proměnné jinou hodnotou. b) Zánikem proměnné, ve které je hodnota uložena. 4
5 Reference Speciální hodnota, jejímž významem je identifikace objektu (jako je rodné číslo identifikace občana). Vzniká obvykle jako výsledek operace new (také readobject, newinstance a operací + nad řetězy). Můžeme si ji představovat jako adresu (32 bitové nezáporné číslo) prvního bytu paměťového prostoru objektu. Protože jejím významem není numerická hodnota, nesmí se s ní provádět numerické operace +, * atd. (stejně jako nemá smysl sčítat resp. násobit rodná čísla). Povolené operace s referencemi jsou: přiřazení porovnání na rovnost a nerovnost přístup k položce objektu volání instanční metody Pozn.: Jazyk C/C++ dovoluje provádět s referencemi některé aditivní operace. Tím se ale podstatně sníží bezpečnost programování a tedy spolehlivost programů. Typ Java je silně typový jazyk, což znamená, že o každé hodnotě, proměnné a výrazu je v čase kompilace programu znám typ. Typ: určuje množinu hodnot, které mohou být uloženy v proměnné daného typu, resp. mohou být výsledkem výrazu daného typu (o každé hodnotě z této množiny říkáme, že je daného typu), určuje operace povolené s hodnotami tohoto typu, určuje defaultní hodnotu pro inicializaci proměnných. Dělení typů: 1. Primitivní typy a) množina hodnot je předem přesně dána definicí jazyka Java, b) v textu programu se hodnoty dají přímo zapisovat pomocí literálů, c) označují se klíčovými slovy: numerické (byte, short, char, int, long, float, double) pro jednotlivé hodnoty je přesně stanovena reprezentace (tj. způsob zápisu) hodnot v paměti počítače (bit po bitu). logický (boolean) reprezentace hodnot (true, false) je daná konkrétní implementací Javy. d) Pro hodnoty typu char, int, long, float, double a boolean jsou definovány literály tj. přímý zápis hodnoty v programu: 99 // hodnota typu int 24L // hodnota typu long 1.1E10// hodnota typu double 3.14F // hodnota typu float 'a' // hodnota typu char true // hodnota typu boolean 5
6 1. Referenční typy: Proměnná a) označují se jménem třídy (resp. rozhraní) nebo typem pole, b) existuje pouze jediný literál pro vyjádření referenční hodnoty: null, který označuje hodnotu prázdná reference. c) množina hodnot daného referenčního typu není předem definována specifikací Javy a mění se během výpočtu programu. Na začátku obsahuje typ pouze hodnotu null. Při výpočtu se rozrůstá o nové reference, které jsou přidělovány nově vznikajícím objektům. Množina typu se také může zmenšovat zánikem referencí. Paměťové místo, ve kterém je uložena hodnota příslušného typu. Proměnná má atributy jméno a typ, který se určují deklarací proměnné. Proměnná nemá referenci (V jazyku C/C++ proměnná referenci má). Pravidla Javy zaručují, že proměnná použitá ve výrazu má vždy definovanou hodnotu (defaultní, danou inicializací, přiřazením nebo předáním skutečného parametru). Proměnné jsou: třídní (statické) paměťové místo je alokováno v globálním adresním prostoru. K dané deklaraci existuje vždy právě jedno paměťové místo. Třídní proměnná existuje od začátku do konce běhu programu. Inicializuje se při spuštění programu a pokud není v deklaraci uvedena inicializace, je jí automaticky přiřazena defaultní hodnota. instanční paměťové místo je alokováno v rámci objektu. K dané deklaraci instanční proměnné existuje v daném okamžiku tolik paměťových míst, kolik existuje objektů příslušné třídy. Proměnná zaniká ukončením existence objektu. Inicializuje se při inicializaci objektu a pokud není v deklaraci uvedena inicializace, je jí automaticky přiřazena defaultní hodnota. lokální proměnná paměťové místo je alokováno na zásobníku provedením deklaračního příkazu. Lokální proměnná se neinicializuje na defaultní hodnotu (na rozdíl od třídních a instančních). Proměnná zaniká ukončením bloku, ve kterém je deklarační příkaz uveden. K dané deklaraci lokální proměnné existuje tolik paměťových míst, kolikrát je v daném okamžiku blok rekurzivně zavolán. parametr paměťové místo je alokováno na zásobníku při volání metody. Parametr je inicializován hodnotou skutečného parametru (argumentu) tj. výrazu uvedeného ve volání metody. K dané deklaraci parametru existuje tolik paměťových míst, kolikrát je v daném okamžiku metoda rekurzivně zavolána. Parametr zaniká ukončením metody. Jméno Některé programové entity se označují jmény a jiná jsou bezejmenná. Jména mají: balíčky třídy a rozhraní proměnné (včetně parametrů) metody Bezejmenné jsou: hodnoty 6
7 výrazy příkazy objekty Jména rozlišujeme na jednoduchá a kvalifikovaná (obdoba jména souboru a cesty k souboru). Jednoduchá jména jsou tvořena identifikátorem a v programu se zavádějí deklaracemi. Identifikace pojmenovaných entit v programu Protože se stejný identifikátor může použít ve více různých deklaracích, musí existovat mechanismus, který jednoznačně určí význam identifikátoru použitého v programu (tj. kterou entitu chceme v daném místě použít): Balíčky, třídy a rozhraní, třídní metody a třídní proměnné se v programu identifikují (určují) kvalifikovanými jmény: Kvalifikovaná jména tříd a rozhraní jsou tvořena tak, že se před jednoduché jméno třídy uvede jméno balíčku, ve kterém je třída umístěna: vektory.vektor Kvalifikovaná jména třídních proměnných a třídních metod jsou tvořena tak, že se před jednoduché jméno proměnné resp. metody uvede kvalifikované jméno třídy ve kterém je deklarace proměnné resp. metody umístěna: vectory.vector.nulovy_vektor Pro určení těchto entit v programu lze vždy použít kvalifikované jméno. Často je ale možno, tam kde nemůže dojít k nejednoznačnosti, použít jméno jednoduché. Instanční proměnné, instanční metody, lokální proměnné a parametry se identifikují svými jednoduchými jmény. Konverze Lokální proměnné a parametry existují pouze v bloku, ve kterém jsou nadeklarovány, takže pro jejich identifikaci stačí jejich jednoduché jméno. Před voláním instanční metody resp. přístupem k instanční proměnné musí být uveden referenční výraz, jehož typ určí význam následujícího jednoduchého jména: Vektor v = new Vektor(1,2); // typ proměnné v určí význam identifikátor ů x a delka System.out.println(v.x); System.out.println(v.delka()); Každý výraz v Javě má čase kompilace přiřazen atribut typ. Implicitně je tento typ dán typy operandů, které jsou ve výrazu použity. Konverze je změna tohoto implicitního typu. Konverze se v programu zapisuje operací přetypování: public static int CELA_CAST_PI = (int)math.pi; Přetypování je většinou možno vynechat (provede se automaticky). Konverze: Přiřazovací konverze pokud je proměnná jiného typu než výraz, jehož hodnota se do ní 7
8 přiřazuje, musí se výraz zkonvertovat na typ proměnné. Unární numerické povýšení pokud je operandem operace výraz, jehož typ je byte, short nebo char, automaticky se zkonvertuje na typ int. Binární numerické povýšení pokud jsou operandy binární operace (s výjimkou posuvů) výrazy nestejných typů, tak se operand menšího typu automaticky zkonvertuje na hodnotu většího typu: int long float double Tento typ je pak také typem celého výrazu. Konverze výrazu znamená v době výpočtu: prázdnou operaci skutečnou změnu reprezentace hodnoty test, zda je konverze přípustná a v opačném případě hození výjimky Konverze hodnot primitivních typů Hodnoty typu boolean nelze konvertovat. Hodnoty všech numerických typů lze konvertovat na libovolný jiný numerický typ. Rozlišujeme konverze: rozšiřující výraz se konvertuje na typ, který má širší reprezentaci, takže nedojde ke ztrátě hodnoty (může dojít ke ztrátě přesnosti při konverzi int float): byte b = 10; int i = (int)b; zužující výraz se konvertuje na typ, který má užší reprezentaci, takže může dojít ke ztrátě hodnoty, pokud se do nové reprezentace nevejdou významné číslice původní hodnoty: int i = 266; byte b = (byte)i; // v b je hodnota 10; Konverze referencí Při konverzi referencí nedochází ke změně reprezentace. Konvertovat lze pouze referenční typy, jejichž třídy jsou ve vztahu nadtřída podtřída: String s = "999"; Integer i = (Integer)s; // chyba při kompilaci Rozlišujeme konverze: rozšiřující výraz se konvertuje na takový referenční typ, jehož třída je nadtřídou třídy původního typu. Při této konverzi nemůže dojít k chybě: String s = "XYZ"; Object o = (Object)o; zužující - výraz se konvertuje na takový typ, jehož třída je podtřídou původního typu. V takovém případě se v době běhu kontroluje, zda konvertovaná reference patří do nového typu a v opačném případě je generována výjimka ClassCastException: try { Object o =...; String s = (String)o; // je v o skutečn ě reference na String? catch (ClassCastException e) {... 8
9 Struktura programu Struktura programu je odvozena od struktury souborového systému a skládá se z: balíčků odpovídají adresářům, podbalíčků odpovídají podadresářům, tříd odpovídají souborům. Zdrojový kód programu se zapisuje do jednotlivých textových souborů, které se nazývají kompilační jednotky. Kompilační jednotka obsahuje: deklaraci package deklarace balíčku do kterého patří následující deklarovaná třída klauzule import deklaraci třídy Kompilační jednotka (zdrojový soubor) se jmenuje jednoduchým jménem deklarované třídy s příponou.java (Vektor.java). Exekutivní tvar programu Aby bylo možno program vykonat musí se převést do vykonavatelné formy, která se nazývá jarfile (obdoba exe formátu programů pro Windows). Postup převodu je následující: Založí se pomocný adresář (obvykle se jménem class) Pro každý balíček javovského programu se v adresáři class vytvoří podadresář, jehož relativní cesta odpovídá kvalifikovanému jménu balíčku (class/vektory) Každá kompilační jednotka se přeloží programem javac, čímž vznikne stejnojmenný soubor avšak s příponou.class (takzvaný classfile). V tomto souboru je deklarace třídy převedená do vnitřní binární formy nazývané byte-code. Classfile se uloží do takového podadresáře adresáře class, který odpovídá balíčku přeložené třídy: class/vektory/vektor.class. Pomocný adresář class se zkomprimuje do formátu zip a výslednému souboru se dá libovolné jméno s příponou.jar (např. JavaVektory.jar) Spuštění programu se pak provede voláním interpretu java, kterému se dá jméno jarfilu jako parametr: java jar JavaVektory.jar Co je možno vynechávat V předcházejícím textu jsme záměrně pro dosažení co největší ilustrativnosti používali nezkrácený zápis programu. V běžných programech se ovšem obvykle používá zkrácený zápis a vynechávají se ty části, které kompilátor implicitně doplňuje: u tříd, které mají přímo nadtřídu Object klauzuli extends: class Vektor // extends Object { import klauzuli pro základní balíček: // import java.lang.*; kvalifikace jména třídy v balíčku, kde je deklarovaná: 9
10 public static final Vektor NULOVY_VEKTOR = new /* vektory.*/ Vektor(); kvalifikaci jména třídní proměnné a třídní metody ve třídě kde jsou deklarovány resp. zděděny: Vektor(double x, double y) { this.x = x; this.y = y; /* Vektor. */ delkavsechvytvorenychvektoru += this.delka(); operátor this při přístupu k instančním proměnným a volání instančních metod v instančních metodách a konstruktorech: Vektor(double xx, double yy) { /* this. */ x = xx; /* this. */ y = yy; delkavsechvytvorenychvektoru += /* this. */ delka(); volání konstruktoru bez parametrů z nadtřídy jako první příkaz v těle konstruktoru: Vektor(double x, double y) { // super(); this.x = x; this.y = y; přetypování v rozšiřující konverzi: int x = 10; long l = /* (long) */ x; přetypování při přiřazování literálu typu int a v unárním a binárním povýšení: byte b = /* (byte) */ 34 double x = 10.0 * /* (double) */ /* (int) */ b; 10
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
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
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 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
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,
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
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ý
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
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
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
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í
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ů
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
Ú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
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ů
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 =
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
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ě
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
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
Soubor jako posloupnost bytů
Soubory Soubor je množina údajů uložená ve vnější paměti počítače, obvykle na disku Pro soubor jsou typické tyto operace. otevření souboru čtení údaje zápis údaje uzavření souboru Přístup k údajům (čtení
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í
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
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ů
Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu
Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní
1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
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í
Ú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í
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
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
Proměnné a datové typy
Proměnné a datové typy KAPITOLA 2 V této kapitole: Primitivní datové typy Proměnné Opakování Mezi základní dovednosti každého programátora bezesporu patří dobrá znalost datových typů. Ta vám umožní efektivní
Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc.
Objektově orientované programování 1 XOBO1 Autor: Doc. Ing. František Huňka, CSc. 1 Seznam kapitol 1 Základní pojmy...3 1.1 Úvod do tříd a objektů...3 1.2 Vývojové prostředí...7 1.3 Jednotný modelovací
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á
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
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ě
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í
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
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!
Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného
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
knihovna programátora
knihovna programátora Učebnice pro ty, kteří nechtějí zůstat obyčejnými kodéry, ale chtějí se stát špičkovými architekty Postupuje podle metodiky Architecture First Soustředí se na návrh programů a osvojení
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 - operátor je speciální
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;
7. Datové typy v Javě
7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů
Java a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
Ú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
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
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
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ář
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,
Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů
Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
9. přednáška - třídy, objekty
třída String a její použití kolekce, typované kolekce 9. přednáška - třídy, objekty Algoritmizace (Y36ALG), Šumperk - 9. přednáška 1 Třída String Objekty knihovní třídy String jsou řetězy znaků Od ostatních
Paměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
Reflexe RTTI Runtime Type Identification
Vaše jistota na trhu IT Reflexe RTTI Runtime Type Identification Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Vaše jistota na trhu IT Opakování Shrnutí či téma Co je to reflexe/rtti Termínem Reflexe označujeme
ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
ANT Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Jazyk C# (seminář 5)
Jazyk C# (seminář 5) Pavel Procházka KMI 23. října 2014 Přetěžování metod motivace Představme si, že máme metodu, která uvnitř dělá prakticky to samé, ale liší se pouze parametry V C# můžeme více metod
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
Úvodní informace. Petr Hnětynka 2/2 Zk/Z
JAVA Úvod Úvodní informace Petr Hnětynka hnetynka@d3s.mff.cuni.cz http://d3s.mff.cuni.cz/~hnetynka/java/ 2/2 Zk/Z zkouška písemný test zápočet zápočtový test u počítače max 5 opakování zápočtový program
OOPR_05. Případové studie
OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára
14.4.1. Typický prvek kolekce pro české řazení
14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení
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í
5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
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
Datové typy strana 29
Datové typy strana 29 3. Datové typy Jak již bylo uvedeno, Java je přísně typový jazyk, proto je vždy nutno uvést datový typ datového atributu, formálního parametru metody, návratové hodnoty metody nebo
Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová
Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor
Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
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
UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
Java Výjimky Java, zimní semestr
Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní
ADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
Třída jako zdroj funkcí
Třída jako zdroj funkcí Třída v jazyku Java je programová jednotka tvořená množinou identifikátorů, které mají třídou definovaný význam Základem uživatelského programu v jazyku Java je třída, ve které
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
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ů
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ů
DATOVÉ TYPY POKRAČOVÁNÍ
DATOVÉ TYPY POKRAČOVÁNÍ Hodnotové typy pokračování Znaky Pro práci se znaky slouží typ char. Jedná se o dvoubajtový typ a uchovává znaky v kódování UNICODE. Je tedy ekvivalentem typu wchar_t v jazyce C++.
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ší
Neměnné objekty. Tomáš Pitner, upravil Marek Šabo
Neměnné objekty Tomáš Pitner, upravil Marek Šabo Neměnné objekty Neměnný (immutable) objekt nemůže být po jeho vytvoření modifikován Bezpečně víme, co v něm až do konce života bude Tudíž může být souběžně
Osnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)
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
Třídy a dědičnost. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické
Třídy a dědičnost A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Dnešní témata Dědičnost Kompozice Typ String Třídy a dědičnost Dopravní prostředek Vzdušný Pozemní Vodní
11 Diagram tříd, asociace, dědičnost, abstraktní třídy
11 Diagram tříd, asociace, dědičnost, abstraktní třídy 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 diagramům tříd, asociaci,
Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy
Základní pojmy Stromy 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 Graf uzly hrany orientované / neorientované Souvislý
KTE / ZPE Informační technologie
5 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ň Základy
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ě
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č
Úvodní informace. Petr Hnětynka 2/2 Zk/Z
JAVA Úvod Úvodní informace Petr Hnětynka hnetynka@d3s.mff.cuni.cz http://d3s.mff.cuni.cz/~hnetynka/java/ 2/2 Zk/Z zkouška písemný test zápočet zápočtový test u počítače max 5 opakování zápočtový program
Vytváření a použití knihoven tříd
Vytváření a použití knihoven tříd 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 Prostory jmen motivace spolupráce
Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double
Čísla Desetinná čísla pro celá čísla jsme používali typ int pro desetinná čísla používáme typ double analogicky pro konverzi ze stringu na double se místo Convert.ToInt32 používá Convert.ToDouble Př. program,
Ú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
KTE / ZPE Informační technologie
7 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ň - ternární
2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.
Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby
Správa paměti. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016
Správa paměti Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta, 2016 Objektové modelování, B36OMO 10/2016, Lekce 2 https://cw.fel.cvut.cz/wiki/courses/xxb36omo/start
Programovací jazyk Java
1 z 8 Programovací jazyk Java Enumerace (výčty) Složitější definice výčtového typu Konstanty anonymních typů Výčtový typ a datové struktury Java packaging JAR archivy CLASSPATH Apache Ant 10. přednáška
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
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é
Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
Algoritmizace a programování
Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,