PROGRAMOVACÍ STYLY. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
|
|
- Ludmila Šmídová
- před 8 lety
- Počet zobrazení:
Transkript
1 PROGRAMOVACÍ STYLY A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
2 Pár odpovědí od zkoušky PR1 Otázka: Jak spolu souvisí pojem třídy a objektu? Odpověď: Objekty patří do třídy Otázka: Vysvětlete pojem přetížené metody? Odpověď: Nadřízenou metodou je chlapec, ale metoda sdělí, že je děvče. Otázka: Vysvětlete pojem asymptotické složitosti algoritmu? Odpověď: Sleduje se, jak se algoritmus chová na přidávaní vstupních dat. Otázka: Jakým způsobem se předávají parametry metodám? Odpověď: Parametry primitivního typu se předávají jednotlivě, parametry referenčního typu se jich předá více. 2
3 Úvod 3
4 Kdo je kdo v Programování 2 1. Studenti, absolventi předmětu Programování 1 Pro studenty OI paralelně předmět Algoritmizace 2. Přednášející: Doc.Ing. Jelínek Ivan, CSc. 3. Nejdůležitější učitelé: cvičící!! Ing. M. Balík Ing. Z. Buk Ing. M. Mudroch Ing. J. Šedivý, CSc. Ing. Ondřej Hrstka Proč asi?? Garant: Doc.Ing. Jelínek Ivan CSc. 4
5 Cíl předmětu Programování 2 Předmět navazuje na Programování 1 a klade si za cíl naučit studenty vytvořit objektově aplikaci s grafickým uživatelským rozhraním se znalostí témat: objektový návrh polymorfismus, zpracovaní události, princip mechanismu výjimky, GUI aplety, kolekce vlákna, Dále je student seznámen s jazykem C (student bude schopen programy v jazyku C analyzovat): komparativní výklad jazyka C, struktura programu funkce a parametry pointery dynamická správa paměti 5
6 Organizace předmětu A0B36PR2 Programování 2 Rozsah: 2p+2c Zakončení Z,ZK Kredity 6 po prvním roce je nutné získat alespoň 30! výsledná známka ovlivní možnost tvorby rozvrhu ve 3. semestru 6
7 Osnova přednášek 1. Programovací styly. Třída, dědičnost, zapouzdření, polymorfismus, abstraktní třída, 2. Objektově orientovaný přístup. Rozhraní, rozhraní jako typ proměnné, rozhraní a dědičnost, typ interface, výčtové typy 3. Výjimky, princip mechanismu zpracování výjimek, kompletní zpracování výjimek, vyhození výjimky, propagace výjimek, vlastní výjimky, hierarchie výjimek, kontrolované a nekontrolované výjimky, 4. Kontejnery, použití knihoven seznamů, množin, map v jazyce Java, generika 5. Grafické uživatelské rozhraní (GUI) v jazyce Java, typy komunikace, knihovny AWT a SWING, princip GUI, komponenty, kontejnery, správce rozmístění, obsluha událostí, aplety, vlastnosti, způsob aktivace, životní cyklus apletu, předávání parametrů do apletu, 6. Události jako objekt, zpracování události, zdroj události, posluchač události, model šíření události, model šíření událostí, zpracování vlastní události, více zdrojů a posluchačů, rozlišení zdrojů, 7. Vlákna, vícevláknový program, deadlock a řešení, synchronizace vláken 8. Základy programovaní v C, charakteristika jazyka, model kompilace, struktura programu, základní vstup a výstup, syntaxe jazyka, 9. Komparativní výklad jazyka C k jazyku Java, příklad programu, makra, podmíněný překlad, pole a pointery I 10. Funkce a parametry v C, dynamická správa paměti, funkce a pointery II 11. Systematické programování v C, preprocesor, základní knihovny, struktury, uniony, výčtové typy 12. Technologie tvorby SW 13. Soutěž nejlepších semestrálních prací 7
8 Osnova cvičení 1. Úvodní test, zopakování základů programování a objektového přístupu, zadání semestrální práce 2. Polymorfismus, abstraktní třída, rozhraní 3. Objektově orientovaný přístup 4. Zpracování výjimek 5. Kolekce, enum a generika 6. Grafické uživatelské rozhraní, aplety 7. Zpracování událostí 8. Vlákna, síťování 9. Test z Javy. Základy programovaní v C, preprocesor 10. Systematické programování v C, knihovny, string, pole 11. Funkce v C, parametry, správa paměti, struct 12. Pointery v C, pointery na funkce, volání C z Javy 13. Obhajoba semestrálních prací Test a zápočet 14. Rezerva 8
9 Hodnocení a zkouška Zdroje bodů pro hodnocení Body 4. domácí úkoly po 10 bodech 40 b (min. 20 b) semestrální práce 35 b (min. 15 b) test na cvičeních 10 b (min. 5 b) písemný zkouškový test 15 b (min. 10 b) Ústní zkouška 20 b (-10b pokud k ústní) Body ze cvičení, maximálně 85, při 75 a více bodech ze cvičení prémiový test a bez zkoušky: A, B, C Klasifikace na základě bodového hodnocení) klasifikace počet bodů číselně slovně A >90 1 výborně B >80 1,5 velmi dobře C >70 2 dobře D >60 2,5 uspokojivě Možnost nechat si zapsat známku nebo jít k ústní zkoušce odečte se 10 bodů E >50 3 dostatečně F 4 nedostatečně Minimum bodů k zápočtu 40 9
10 Doporučená literatura Základní zdroje: Poznámky z přednášek a cvičení Základní příručky jazyka Java: Zakhour, S: Java 6, výukový kurz, CPress, Brno, 2007 Darwin, Ian F.: Java, kuchařka programátora, Computer Press, 2006 Herout, P.: JAVA, grafické uživatelské prostředí a čeština, Kopp, 2001 Herout, P.: JAVA, Bohatství knihoven, Kopp, 2006 Pecinovský, R.: Java 5.0, Novinky a upgrade aplikací, Computer Press, 2005 Herout, P.: Učebnice jazyka Java, Kopp, 2007 Keogh, J.:Java bez předchozích znalostí, Computer Press, 2005 Základní příručky jazyka C: Mueldner, T.: C for Java programmers, Addison Wesley, 2000 Kernighan, B.W.-Ritchie, D.M.: Programovací jazyk C. Computer Press, Herout, P.: Učebnice jazyka C. III. vyd. Kopp, Č.Budějovice, Další zdroje (publikace v češtině): Eckel, B.: Myslíme v jazyku Java, Grada, 2000, I + II Chapman, S., J.: Začínáme programovat v jazyce JAVA, Computer Press, 2001 Hawlitzek, JAVA2, příručka programátora, Grada, 2000 Shildt, H.: Java 2, Příručka programátora, Softpress,
11 Začínáme 11
12 Předpokládané znalosti, např. Co rozumíte řídícími strukturami? Jak se předávají parametry? Jaké znáte referenční typy? Co je to implicitní konstruktor? K čemu slouží operátor this, super? Rozdíl mezi metodami třídy a instančními metodami? Co rozumíte zapouzdřením? Jaký je princip dědičnosti? Co to je kompozice objektů? 12
13 Programovací jazyky a programovací styly Programovací jazyky deklarativní imperativní Programovací styly Naivní Procedurální Objektově orientovaný Návrhové vzory - speciální přednáška Rudolf Pecinovský: Návrhové vzory 33 vzorových postupů pro objektové programování, Computer Press, 2007 SOA - service-oriented architecture 13
14 Deklarativní programovací jazyky nepopisují jak něco udělat popisují co má být výsledkem HTML (HyperText Markup Language) specifikuje, jak má stránka vypadat (font - typ, velikost, barva, nadpis), ale nepopisuje, jakým způsobem se má stránka na daném počítači zobrazit Prolog Nepopisuje kroky výpočtu, ale: Dodají se fakta o problému databázi znalostí Sformuluje se požadovaný dotaz cíl, který lze možná odvodit 14
15 Příklad HTML kódu <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>super stránka</title> </head> <body> <h1>nadpis</h1> Obsah: <ol> <li>úvod</li> <li>závěr</li> </ol> </body> </html> 15
16 Fakta rodic(jana,petr). rodic(petr,eva). dite(x,y) :- rodic(y,x). predek(x,y) :- rodic(x,y). Příklad PROLOG predek(x,y) :- rodic(x,z), predek(z,y). Dotaz a odpověď?- rodic(x,petr). X = jana ; No?- dite(x,jana). X = petr ; No?- predek(jana,eva). Yes 16
17 Programovací styly - příklad Na příkladu programu simulujícího čítač si ukážeme programovací styly Stav čítače: hodn: 24 Čítač Zvětšit + Zmenšit - Nastavit Konec 17
18 Programovací styly - příklad Stav čítače po stisku Zvětšit hodn: 25 Čítač Zvětšit + Zmenšit - Nastavit Konec 18
19 Programovací styly - příklad Stav čítače po stisku Zmenšit hodn: 24 Čítač Zvětšit + Zmenšit - Nastavit Konec 19
20 Programovací styly - příklad Stav čítače po stisku Nastavit hodn: 0 Čítač Zvětšit + Zmenšit - Nastavit Konec 20
21 Programovací styly - příklad Stav čítače po stisku Konec Čítač Zvětšit + Zmenšit - Nastavit Konec 21
22 Programovací styly příklad, realizace Příklad komunikace programu (textově): Hodnota = ) Konec 1) Zvětšit 2) Zmenšit 3) Nastavit Vase volba: Hodnota = 25 0) Konec 1) Zvětšit 2) Zmenšit 3) Nastavit Vase volba: 2 Hodnota =
23 Naivní styl Jednoduché úlohy lze řešit přímočaře, vše implementováno v jedné třídě: public class CitacNaivni{ final static int pochodn = 0; static int hodn, volba; public static void main(string[] args) { Scanner sc = new Scanner(System.in); hodn = pochodn; do { System.out.println("Hodnota = "+hodn); System.out.println("0) Konec\n1) Zvětšit\n2 Zmenšit\n3) Nastavit"); System.out.print("Vaše volba: "); volba = sc.nextint(); switch (volba) { case 0: break; case 1: hodn++; break; case 2: hodn--; break; case 3: hodn = pochodn; break; default: System.out.println("Nedovolená volba"); while (volba>0); System.out.println("Konec"); 23
24 Připomeňme hlavní zásady: Procedurální styl Zadaný problém se snažíme rozložit na podproblémy Pro řešení podproblémů zavádíme abstraktní příkazy, které nejprve specifikujeme a pak realizujeme pomocí procedur a funkcí Aplikace na čítač - dva dílčí podproblémy: 1. provedení požadované operace s čítačem static void operace(int op) 2. komunikace s uživatelem, jejímž výsledkem je kód požadované operace static int menu() 24
25 Procedurální styl operace s čítačem public class CitacProceduralni { final static int pochodn = 0; static int hodn; static void operace(int op) { switch (op) { case 1: hodn++; break; case 2: hodn--; break; case 3: hodn = pochodn; break; 25
26 Procedurální styl - komunikace static int menu() { Scanner sc = new Scanner(System.in); int volba; do { System.out.println("0. Konec"); System.out.println("1. Zvětšit"); System.out.println("2. Zmenšit"); System.out.println("3. Nastavit"); System.out.print("Vaše volba: "); volba = sc.nextint(); if (volba<0 volba >3) { System.out.println("Nedovolená volba"); volba = -1; while (volba<0); return volba; 26
27 Procedurální styl main public static void main(string[] args) { int volba; hodn = pochodn; do { System.out.println("Hodnota = "+hodn); volba = menu(); if (volba>0) operace(volba); while (volba>0); System.out.println("Konec"); Poznámky: procedurální řešení čítače (nelokální proměnná pro hodnotu + nelokální konstanta udávající počáteční hodnotu) je nedokonalé (proč?) čítač je typ, pro který jsou definovány určité operace (realizovatelné procedurami a funkcemi) a jehož implementace (proměnná pro hodnotu) by neměla být volně přístupná pro realizaci čítače je vhodnější objektově orientovaný styl Připomenutí 27
28 Principy objektového programování Realita je modelována koncepty, třídami Třídy mohou generovat objekty, instance třídy, konstruktorem Objekty jsou charakterizovány svými vlastnostmi, individuálními hodnotami a společnými metodami Chod programu je tvořen vykonáváním metod jednotlivých objektů (zasílání zpráv) Metody jsou určeny svým rozhraním, mohou být přetíženy Třídy mohou vytvářet hierarchie, v Javě pouze jedna nadřízená třída, podřízená třída specializace nadřízené Třídy mohou být tvořeny i kompozicí jiných tříd Vlastnosti a metody objektů jsou zapouzdřené podle potřeby Metody objektů, použitelné na různé objekty, pracují podle aktuálního objektu princip polymorfismu Polymorfismus lze implementovat v Javě pomocí abstract class (hierarchie tříd) nebo interface (vnucené metody) 28
29 Hlavní zásady: Objektově orientovaný styl Při rozkladu problému specifikujeme nové datové typy (datové abstrakce), tzn. specifikujeme operace, které se budou s daty těchto typů provádět Pro realizaci datových abstrakcí použijeme objekty a třídy Připomeňme si charakteristiku objektu: datové položky a metody objektu jsou dány typem objektu - třídou objekt se může nacházet v různých stavech daných hodnotami datových položek (atributů) objektu chování objektu je dáno metodami (operacemi), které jsou pro něj definovány 29
30 Třídy a objekty - připomenutí Třída popisující nový datový typ obsahuje: deklarace položek, ze kterých se skládají objekty daného typu deklaraci konstruktoru, kterým se inicializují vytvořené objekty deklarace metod, které realizují operace s objekty Položky se obvykle deklarují tak, aby nebyly z vnějšku objektu přístupné: private typ jméno; Konstruktor je inicializační operace, která má jméno třídy a nevrací žádnou hodnotu; schéma deklarace konstruktoru třídy T (konstruktor by měl být z vnějšku přístupný!! ): public T(specifikace parametrů) { tělo konstruktoru Ve třídě může být deklarováno několik konstruktorů, které se liší počtem a/nebo typy parametrů (přetěžování) Obvyklé schéma deklarace metody (přístupnost metody je dána logikou problému): public typ jméno(specifikace parametrů) { tělo metody Opakování 30
31 Dědičnost: Dědičnost ISA vztah (Peter is a student. Auto je dopravní prostředek.) Vztah nadtřída podtřída, předek potomek Předek shromažďuje společné vlastnosti a předepisuje či implementuje chování Kompozice HAS vztah (A car has an engine - Auto má motor) Viz přednášky v PR1 sředitelem a datem narození Viz přednášky v PR1 s obdélníkem a kvádrem A0B36PR2-201 Opakování 31
32 Zapouzdření Metody Data Metody A0B36PR2-201 Připomenutí 32
33 Čítač jako datový typ Čítač zavedeme jako datový typ s operacemi zvetsit, zmensit, nastavit a hodnota a s datovými položkami hodn a pochodn Grafické vyjádření: Citac hodn pochodn zvetsit() zmensit() nastavit() hodnota() název typu datové položky operace (metody) Poznámka: hodnota položky pochodn bude stanovena při vytvoření objektu 33
34 Třída Citac public class Citac { private int hodn; private int pochodn; public Citac(int ph) { pochodn = ph; hodn = ph; public void zvetsit() {hodn++; public void zmensit() {hodn--; public void nastavit() {hodn = pochodn; public int hodnota() {return hodn; 34
35 Použití čítače jako objektu public static void main(string[] args) { int volba; Citac citac = new Citac(0); // Citac citac1 = new Citac(3); do { System.out.println("Hodnota = "+citac.hodnota()); volba = menu(); switch (volba) { case 1: citac.zvetsit(); break; case 2: citac.zmensit(); break; case 3: citac.nastavit(); break; // case 4: System.out.println("nic"); break; while (volba>0); System.out.println("Konec"); 35
36 Třída CitacModulo, dědění CitacModulo hodn pochodn zvetsit() zmensit() nastavit() hodnota() název typu datové položky operace (metody) 36
37 Třída CitacModulo, dědění public class CitacModulo extends Citac { public CitacModulo(int ph) { public void zvetsit() { System.out.println(" " + hodn % 5); hodn++; hodn = ((hodn % 5) == 0)? pochodn : hodn; 37
38 Menu jako datový typ Menu zavedeme jako datový typ s operacemi vyber() a volba() a s datovými položkami prvky, vyzva a volba Grafické vyjádření: Menu prvky vyzva volba vyber() volba() 38
39 Třída Menu public class Menu { String[] prvky; String vyzva; private int volba; public Menu(String[] prvky, String vyzva) { this.prvky = prvky; this.vyzva = vyzva; public int vyber() { Scanner sc = new Scanner(System.in); do { for (int i=0; i<prvky.length; i++) System.out.println(prvky[i]); System.out.print(vyzva); volba = sc.nextint(); if (volba<0 volba>=prvky.length) { System.out.println("Nedovolená volba"); volba = -1; while (volba<0); return volba; public int volba() { return volba; 39
40 Čítač a Menu jako objekt public class Citac_Test_Objekt_Menu public static void main(string[] args) { String[] nabidka = { "0) Konec", "1) Zvětšit", "2) Zmenšit", "3) Nastavit" ; Citac citac = new Citac(0); Menu menu = new Menu(nabidka, "Vaše volba: "); do { System.out.println("Hodnota = "+citac.hodnota()); switch (menu.vyber()) { case 1: citac.zvetsit(); break; case 2: citac.zmensit(); break; case 3: citac.nastavit(); break; while (menu.volba()!=0); System.out.println("Konec"); 40
41 Třída MenuX jako potomek třídy Menu - dědění 1. zdědí od třídy Menu: všechny datové položky private String[] prvky; private String vyzva; private int volba; všechny metody public int vyber(); 2. přidá public int volba(); datovou položku vytváření menu libovolné délky private int pocetprvku, volny; metody přidávání položky menu pridejpolozkudomenu(string s) zadání libovolné výzvy pridejvyzvu(string s) 41
42 Třída MenuX jako potomek třídy Menu vytváření menu libovolné délky (pocetprvku + volny) přidávání jednotlivé položky menu (pridejpolozkudomenu(string s)) zadání libovolné výzvy (pridejvyzvu(string s)) MenuX prvky vyzva volba pocetprvku volny vyber() volba() pridejpolozkudomenu(string s) pridejvyzvu(string s) 42
43 Třída MenuX jako potomek Menu class MenuX extends Menu{ //private String[] prvky; //private String vyzva; //private int volba; // public int vyber() { // public int volba() { private int pocetprvku; private int volny=0; public MenuX(String[] prvky, String vyzva,int pocet) { super(prvky, vyzva); this.pocetprvku = pocet; public void pridejpolozkudomenu(string s){ if (volny < pocetprvku)prvky[volny++]=s; public void pridejvyzvu(string s){ vyzva=s; 43
44 Třída Čítač 5 public class Citac_Test_MenuX { public static void main(string[] args) { Citac citac = new Citac(0); String[] nabidka = new String[6]; MenuX menu = new MenuX(nabidka, "Vaše volba: ", 6); menu.pridejpolozkudomenu("0) Konec"); menu.pridejpolozkudomenu("1) Zvětšit"); menu.pridejpolozkudomenu("2) Zmenšit"); menu.pridejpolozkudomenu("3) Nastavit"); menu.pridejpolozkudomenu("4) nove"); menu.pridejpolozkudomenu("5) XXX"); menu.pridejvyzvu("vaše volba: "); do { System.out.println("Hodnota = "+citac.hodnota()); switch (menu.vyber()) { case 1: citac.zvetsit(); break; case 2: citac.zmensit(); break; case 3: citac.nastavit(); break; case 4: System.out.println("nic"); break; while (menu.volba()!=0); System.out.println("Konec"); 44
45 Třída CitacGUI Vybudován s využitím knihovny SWING viz příslušná přednáška Řešení viz příklady 45
46 Pojmenované konstanty Výčtové typy (>=Java 5 ) Konečný malý počet konstant, nezáleží na jejich reprezentaci Pro jeden účel, konstanty spolu souvisí Možnost konstanty parametrizovat Typové zabezpečení Syntaxe: Seznam jednotlivých hodnot daného typu je je možno definovat jejich prostým výčtem, např.: enum Den {PO, UT, ST, CT, PA, SO, NE; Výčet proměnných konstant obsahujících i parametry viz dále předávané konstruktoru za název deklarované proměnné seznam parametrů třeba definovat konstruktor A0B36PR2-2 46
47 Výčtové typy Výčtové typy jsou speciální třídy zavedené pro větší bezpečí a pohodlí, v nejjednodušší variantě se definují pomocí seznamu konstant daného typu (příklad): enum Den {SUN, MON, TUE, WED, THU, FRI, SAT; mají ordinální čísla Vypíší se takto: for ( Den d : Den.values( ) ) System.out.println( d.ordinal( )+ " " +d.name( ) ); for (<Typ> <parametr> :<kontejner>) Iterátor, viz kolekce 7. přednáška.values( ) vrací pole konstant.name( ) A0B36PR2-2 vrací odkaz na konstantu 0 SUN 1 MON 2 TUE 3 WED 4 THU 5 FRI 6 SAT 47
48 Den d = Den.MON; Výčtové typy A0B36PR2-2 switch (d) { case SAT: System.out.println(" sat"); break; case SUN: System.out.println(" sun"); break; case MON: System.out.println(" No work"); break; // No work case FRI: System.out.println(" Partial work "); break; // Partial work default: System.out.println(" work"); break; // Work No work 48
49 Výčtové typy s atributy Každá výčtová konstanta je objektem svého výčtového typu To dává prvkům enum možnost přiřadit k výčtovým konstantám i další statické atributy Lze atributy použít k rozvinutí informace o výčtové konstantě Výčtové konstanty s atributy se vyvářejí konstrutory třídy enum, nestačí pouhé vyjmenování Přístup k atributům přes tečka notaci K výčtu můžeme běžně přidávat metody apod.
50 Výčtové typy s atributy public enum Day { SUN ( "Sunday", "dimanche", new Point(0,0) ), MON ( "Monday", "lundi", new Point(1,0) ), TUE ( "Tuesday", "mardi", new Point(2,0) ), WED ( "Wednesday", "mercoledi", new Point(3,0) ), THU ( "Thursday", "jeudi", new Point(4,0) ), FRI ( "Friday", "vendredi", new Point(5,0) ), SAT ( "Saturday", "samedi", new Point(6,0) ), ; String en; String fr; Point where; private Day( String en, String fr, Point where ) { this.en=en; this.fr=fr; this.where = where; Konstruktor je private A0B36PR2-2 50
51 Výčtové typy s atributy System.out.println("Streda ve zkratce " + Day.WED + " anglicky je " + Day.WED.en + " a francouzky je " + Day.WED.fr); for (Day d : Day.values()) { System.out.println(d.ordinal() + " " + d.name() + " angl." + d.en + " \tfr." + d.fr ); Streda ve zkratce WED anglicky je Wednesday a francouzky je mercoledi 0 SUN angl.sunday fr.dimanche 1 MON angl.monday fr.lundi 2 TUE angl.tuesday fr.mardi 3 WED angl.wednesday fr.mercoledi 4 THU angl.thursday fr.jeudi 5 FRI angl.friday fr.vendredi 6 SAT angl.saturday fr.samedi A0B36PR2-2 51
52 Výčtové typy s atributy a metodami public enum Month { JAN(31,5), FEB(-1,3) public int days(int yy) { pro únor přepsáno return yy % 4 == 0? 29 : 28;, MAR(31,3), APR(30,3), MAY(31,3), JUN(30,5), JUL(31,3), AUG(31,1), SEP(30,5), OCT(31,4), NOV(30,5), DEC(31,3); private final int days; // hidden private final int ds; // hidden private Month(int days, int ds) { this.days = days; this.ds = ds; // konstructor public int days(int year) { return days; public int ds(int year) { return ds; public static int totaldays(int year) { return year % 4 == 0? 366 : 365; FEB má zastíněnou metodu days, speciální chování A0B36PR2-2 52
53 Balíky (package) a přístupová práva Specifikátor Táž třída Jiná třída téhož balíku V podtřítě téhož balíku V podtřídě jiného balíku V jiné třídě jiného baliku private Ano Ano Ano Ano protected Ano Ano Ano ano public Ano Ano Ano Ano Ano
54 Balíky (package) a přístupová práva Platí pro proměnné, konstanty, metody, třídy: Private Autorizovaný přístup, zapouzdření Přístup jen na jeden balík Protected Z libovolné třídy téhož balíku a z odvozené třídy, public Porušený autorizovaný přístup, může se ke všemu
55 55
Třídy a dědičnost. BD6B36PJV Fakulta elektrotechnická České vysoké učení technické
Třídy a dědičnost BD6B36PJV Fakulta elektrotechnická České vysoké učení technické Třídy a dědičnost Dopravní prostředek Vzdušný Pozemní Vodní Plazivý Čtyřnohý Motorový AUTA BD6B36PJV-2 2 Dědičnost základní
Algoritmizace. Cíle předmětu
Cíle předmětu Algoritmizace naučit se sestavovat algoritmy řešení jednoduchých problémů a zapisovat je v jazyku Java Organizace předmětu přednášky (učast nepovinná, ale doporučená) cvičení střídavě u tabule
Třída jako datový typ. BD6B36PJV 01 Fakulta elektrotechnická České vysoké učení technické
Třída jako datový typ BD6B36PJV 01 Fakulta elektrotechnická České vysoké učení technické Objektový přístup programování Modelování problému jako systému spolupracujících tříd Třída modeluje jeden koncept
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
Programování 1 - Java
Programování 1 - Java A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické A0B36PR1 - ÚVOD 01 1 Vítejte, představme se Přednášející Doc. Ing. Ivan Jelínek, CSc. Studenti 1. ročníku
Ú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í
Třídy, polymorfismus. A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické
Třídy, polymorfismus A0B36PR2-Programování 2 Fakulta elektrotechnická České vysoké učení technické Polymorfizmus ~ vícetvarost Polymorfizmus základní vlastnost objektového přístupu základní princip polymorfismu:
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í
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á
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í
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
Ú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
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
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
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ší
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é
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á
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
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,
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
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
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ři studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.
1 Grafické rozhraní Studijní cíl Tento blok je věnován vytváření programů s využitím grafického rozhraní (GUI). Vysvětlen bude základní filozofie pro vytváření aplikací s GUI ve srovnání s konzolovými
Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13
Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13 KAPITOLA 1 Na úvod o Javě 15 Počítačový program 15 Vysokoúrovňový programovací
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
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ů
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ář
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ě
Úvod do programování v jazyce Java
Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz
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,
Abstraktní třídy, polymorfní struktury
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní třídy, polymorfní struktury BI-PA2, 2011, Přednáška 9 1/32 Abstraktní třídy, polymorfní struktury Ing. Josef Vogel, CSc Katedra softwarového inženýrství
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,
Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1
Algoritmizace Cíl předmětu - naučit se sestavovat algorimy řešení základních problémů a zapisovat je v jazyku Java. Jádrem předmětu jsou data, typy, výrazy a příkazy demonstrované v programovacím jazyce
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
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;
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é
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,
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
Ú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í
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í
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
Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013
Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521
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
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
3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti
Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti 3. přednáška nalezení největšího prvku, druhého nejvyššího prvku, algoritmus shozeného praporku. Algoritmizace
7.5 Diagram tříd pokročilé techniky
7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem
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
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,
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í
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
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ý
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ě
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í
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ů
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
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
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Programování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů 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 1 2 Shrnutí procvičených
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é
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
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
Návrhové vzory OMO, LS 2014/2015
Návrhové vzory OMO, LS 2014/2015 Motivace Cílem objektového návrhu je strukturu aplikace navrhnout tak, aby splňovala následující kritéria: snadná rozšiřitelnost účelnost testovatelnost dokumentovatelnost
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
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
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................
Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:
Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný
7.5 Diagram tříd pokročilé techniky
7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem
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ů
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í
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
Ú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
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
Objektově orientovaný přístup
Objektově orientovaný přístup 1 Historie programovacích jazyků 1945: John von Neumann článek o nové metodě pro ukládání programů 1945: Grace Hopper poprvé termín "bug" 1946: Konrad Zuse Plankalkul - první
Programování II. Návrh programu I 2018/19
Programování II Návrh programu I 2018/19 Osnova přednášky Co víme? Objektový návrh programu. Příklad. Co víme? Třída Třída je popisem objektů se společnými vlastnostmi. class private:
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
Řídicí struktury. alg3 1
Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení
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
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
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
9. Polymorfismus a rozhraní
Polymorfismus a rozhraní strana 73 9. Polymorfismus a rozhraní Tato kapitola navazuje na základní informace o objektech v kapitole 2, zde se budeme zabývat přetěžováním metod, polymorfismem a rozhraními.
Programování v jazyce JavaScript
Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Dědičnost objektů BI-JSC Evropský sociální fond
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
III/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
Algoritmizace a programování. Terminálový vstup a výstup
Algoritmizace a programování Terminálový vstup a výstup Verze pro akademický rok 2012/2013 1 Výpis hodnot Terminálový vstup a výstup budeme používat jako základní způsob interakce programu s uživatelem
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
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44
Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky popište stav paměti
Programování II. Dědičnost změna chování 2018/19
Programování II Dědičnost změna chování 2018/19 Osnova přednášky Rozšíření chování. Změna chování. Příklad. Rozšíření chování Když rozšiřujeme chování Můžeme bezpečně použít to, co už máme. Nehrozí žádný
Vyřešené teoretické otázky do OOP ( )
Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika
DTP Základy programování Úvod do předmětu
DTP Základy programování 01 - Úvod do předmětu Úvod Co již umíte? Plán předmětu Studijní materiály Způsob ukončení předmětu Základní pojmy I. Řešený problém: Řešeným nebo zpracovávaným problémem je konkrétní
Jazyk C++, některá rozšíření oproti C
Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
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
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ů
4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady
Základy programování (IZAPR, IZKPR) Přednáška 5 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky Příkazy cyklu -
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ů
Sdílení dat mezi podprogramy
Sdílení dat mezi podprogramy Datové objekty mohou být mezi podprogramy sdíleny pomocí ne-lokálních referenčních prostředí, která jsou vytvářena na základě æ explicitních modifikací (formální parametry
Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory 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 Kolekce ::= homogenní sada prvků