Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Rozměr: px
Začít zobrazení ze stránky:

Download "14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod."

Transkript

1 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í odkazem a hodnotou Přetěžování metod Metody, metoda main Rozhraní, implementace, signatura, kontrakt Ikona třídy 2 Parametry metod U metod je možné definovat 0 n parametrů (formální parametry) Parametry, argumenty public void nastavznamku(int znamka) { znamkaprogramovani = znamka; Student studentnovy = new Student(); studentnovy.nastavznamku(1); Argumenty vstupují do metod prostřednictvím parametrů Argumety někdy též aktuální parametry 3 4 Parametry metod Žádný parametr musí být uvedeny prázdné závorky Pokud je parametrů více, oddělují se čárkou U každého parametru musí být uveden jeho typ public void vyhledejstudenta(string id, int znamka) {... Volání metod vkládáme argumenty polestudentu.vyhledejstudenta("st123", 2); Parametry metod Parametry Lze je využívat jako lokální proměnné metod (jen mají definovanou hodnotu, lze ji měnit) Typ argumentů musí vždy odpovídat typu parametrů Argumenty mohou být literální hodnoty i proměnné V některých jazycích lze realizovat dva typy předávání parametrů (např. Pascal) Hodnotou kopírování hodnoty argumentu do parametru Odkazem propojení formálního parametru a skutečného argumentu Jazyk Java předávání parametrů hodnotou (pass by value) 5 6 1

2 Primitivní datové typy Bity reprezentující hodnotu jsou kopírovány do metody void prictidvojku(int prom) { prom = prom + 2; Referenční proměnné Opět se jedná o bitové kopie referenční proměnné Příklad 1: public class Student { String jmeno;... int a = 10; System.out.println("a = " + a); cislo.prictidvojku(a); System.out.println("a = " + a); void zmenjmeno(student student) { student.jmeno = "Adam"; Student st = new Student(); st.jmeno = "Evzen"; st.zmenjmeno(st); 7 8 (ref. prom.) Předávání kopie referenční proměnné Jedná se o bitové kopie referenční proměnné Příklad 2: public class Student2 { String jmeno; Student void zmenstudenta(student2 student) { student = new Student2(); student.jmeno = "Adam"; st (argument) referenční proměnná referenční proměnná Student2 st = new Student2(); st.jmeno = "Evzen"; st.zmenjmeno(st); 9 10 st (argument, lok. prom.) Rekapitulace Předávání parametrů v jazyce Java vždy dochází k vytváření kopií hodnot argumentů st (argument, lok. proměnná) Nezáleží na typu parametrů (primitivní, referenční)

3 Metody mohou vracet hodnoty, ale nemusí Pokud nevrací hodnotu void Klíčové slovo return Lze vracet hodnoty Primitivního datového typu Referenčního datového typu (např. pole) Lze použít i pro okamžité ukončení vykonávané metody Vracení hodnot Vždy hodnoty kompatibilní s definovaným návratovým typem [modifikator] <navratovy_typ> <nazev> ([parametry]) { Příklady: public Student vytvorstudenta(string id) { if (lzevytvorit()) { return new Student(); else { return null; public String[] gettext () { return new String[] {"I", "Z", "A", "P", "R"; 15 Příklady: public int vypocet() { char c = 'a'; return c; public int vypocet() { float f = 32.5f; return (int) f; public void vypocet() { return "vysledek"; public void vypocet() { return; 16 Parametry klíč. slovo this Stejné názvy instančních proměnných a parametrů použije se vždy bližší definice proměnné this přístup k instančním proměnným a metodám public class Student { Klíčové slovo this String jmeno; void zmenjmeno(string jmeno) { this.jmeno = jmeno; Student st = new Student(); st.zmenjmeno("adam");

4 Parametry klíč. slovo this Není nutné používat vždy Pouze v případech, kdy dochází k překryvu identifikátorů (např. lokální vs. instanční proměnná) Používá se i v jiných případech (např. při přetěžování konstruktorů) Metody volání metod Volání metod Volání metod zásobník Neexistuje žádný limit týkající se počtu volaných metod Volající a volaná metoda mohou být ve stejné třídě i ve třídách různých (způsob volání se odlišuje) Na pořadí definice metod ve třídě nezáleží (vzhledem k pořadí jejich volání) public void metodajedna() { boolean b = true; metodadve(4); public void metodadve(int x) { int z = x + 24; metodatri(); Volání metody Umístění na vrchol zásobníku i s lokálními proměnnými Volání metod v rámci jedné třídy Bez uvádění referenční proměnné Volání metod z jiné třídy Musí být uvedena referenční proměnná public void metodatri() { char c = 'a'; public static void main(string[] args) {.metodajedna(); Volání metod zásobník Volání metod zásobník public void metodajedna() { boolean b = true; metodadve(4); public void metodadve(int x) { int z = x + 24; metodatri(); public void metodatri() { char c = 'a'; public static void main(string[] args) {.metodajedna(); Volání metody Umístění na vrchol zásobníku i s lokálními proměnnými Vrchol zásobníku Aktuálně vykonávaná metoda Stack frame Zásobníků může být i více Vícevláknové programování (další semestry studia)

5 Přetěžování metod a konstruktorů (overloading) Stejné názvy metod a konstruktorů (více variant jedné metody nebo konstruktoru) Přetěžování metod a konstruktorů Nelze pouze změnit návratový typ Pokud změněn pouze návratový typ, nejedná se o přetížení Návratový typ může být změněn Přetížení (není přepis metod další přednášky na téma základů dědičnosti) Musí být změněn počet nebo typ parametrů Přetěžování metod a konstruktorů Přetěžování rekapitulace Musí být změněn seznam parametrů Může být změněn návratový typ Mohou být změněny modifikátory Metody metoda main Metoda main Programování v metodě main Nejedná se o ově orientované programování Reálné aplikace v jazyce Java Objekty komunikující s jinými y (posílání zpráv, volání metod) Další průběh semestru používání metody main "Testování" připravené aplikace (pokročilejší způsoby testování programování neprobíhají v metodě main předmět OOP) Spuštění aplikace Aplikace startuje vždy metodou main

6 umožňují Organizovat velké projekty Členit programy na logické celky Vytvářet jmenné prostory v každém balíčku vždy jen jedna třída stejného názvu Jedná se o podobnou práci jako se složkami v operačním systému Plný název třídy se skládá z uvedení balíčků a názvu třídy (např. java.lang.math, java.lang.string) Při využívání tříd z balíčků je nutné uvádět příkaz import Každá třída v Java API je umístěna v balíčku Import není nutné uvádět pro balíček java.lang Používali jsme bez importu např. třídu Math, String apod. Vytváření většího počtu tříd přemýšlet nad uspořádáním tříd Předcházení konfliktů při volbě názvů balíčků doménové jméno v opačném pořadí (doménová jména jsou unikátní) (např. import cz.upce.fei.matematika.matice; import cz.upce.fei.matematika.*;) Příkaz package Třída se nachází v balíčku příkaz import na prvním řádku zdroj. kódu třídy Pouze jeden příkaz package v souboru Pokud více tříd v jednom souboru, musí být ve stejném balíčku (včetně vnitřních tříd) Struktura balíčků musí odpovídat struktuře složek Java API Java API (Application Programming Interface) Dokumentace k API Přehled balíčků, tříd, konstruktorů, atributů a metod Zatím jsme např. využívali Balíček java.lang, třídu Math Ballíček java.util, třídu Scanner Rozhraní, implementace, signatura, kontrakt Pro jednotlivé verze jazyka se API může značně lišit

7 Rozhraní, implementace Rozhraní Množina informací, které o sobě třída zveřejní Např. vše označené jako public Příklad rozhraní tříd Java API Co nechceme aby bylo přístupné označíme private (nebude součástí rozhraní) Implementace Způsob naprogramování třídy, realizace nabízených funkcí třídy Jak je uděláno to, co třída umí Rozhraní signatura, kontrakt Rozhraní lze dále rozdělit na: Signaturu Kombinace modifikátoru, názvu metody, seznamu parametrů a návratového typu Překladač dokáže kontrolovat správnost Kontrakt Dohoda mezi tvůrcem třídy či metody a jejím uživatelem Měl by být uveden v dokumentačních komentářích (popis funkce, význam parametrů, omezení hodnot parametrů, význam návratové hodnoty, seznam chybových stavů apod.) Nedokáže kontrolovat překladač Nedodržení kontraktu často vede k havárii programu Ikona třídy Název třídy Instanční proměnné (atributy) Metody Obdelnik stranaa stranab vypocitejobvod() vypocitejobsah() vypocitejdelkuuhlopricky() Stavy (co y znají) Chování (co y dělají) obdelnik1 : Obdelnik obdelnik2 : Obdelnik obdelnik3 : Obdelnik 39 7

8 Třídy, objekty, metody, předávání argumentů metod

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

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření 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 příkazům balíčkům, grafickému

Více

Obsah přednášky. Postup při vytváření objektů. Postup při vytváření objektů. Alokace paměti. Inicializace hodnot atributů

Obsah přednášky. Postup při vytváření objektů. Postup při vytváření objektů. Alokace paměti. Inicializace hodnot atributů Základy programování (IZAPR, IZKPR) Přednáška 7 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 Postup při vytváření

Více

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 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

Více

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

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í

Více

Seminář Java II p.1/43

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

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

1. Programování proti rozhraní

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í

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

Algoritmizace a programování

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

Více

Úvod do programovacích jazyků (Java)

Ú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

Více

KTE / ZPE Informační technologie

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ší

Více

Algoritmizace a programování

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

Více

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 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á

Více

7. Datové typy v Javě

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ů

Více

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

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

Více

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

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

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

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,

Více

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

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 -

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

Základy objektové orientace I. Únor 2010

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

Více

Generické programování

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 =

Více

Výčtový typ strana 67

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

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

IRAE 07/08 Přednáška č. 1

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í

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

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,

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

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# 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

Více

Principy objektově orientovaného programování

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

Více

Programování v Javě I. Leden 2008

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

Více

Programování v Javě I. Únor 2009

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íce

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

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

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

Úvod do programovacích jazyků (Java)

Ú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

Více

1. Téma 12 - Textové soubory a výjimky

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

Více

5 Přehled operátorů, příkazy, přetypování

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í

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

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

Více

Úvod do programování - Java. Cvičení č.4

Ú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í

Více

Vytváření a použití knihoven tříd

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

Více

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.

Datové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12. Obsah přednášky: Definice pojmů o datový typ, o abstraktní datový typ Datové struktury Abstraktní datové typy a jejich implementace o Fronta (Queue) o Zásobník (Stack) o Množina (Set) Algoritmizace (Y36ALG),

Více

Teoretické minimum z PJV

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

Více

Algoritmizace a programování. Terminálový vstup a výstup

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

Více

Programování v C++ 1, 5. cvičení

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é

Více

Mnohotvarost (polymorfizmus)

Mnohotvarost (polymorfizmus) Mnohotvarost (polymorfizmus) TYPY MNOHOTVAROSTI... 2 PŘETĚŽOVÁNÍ METOD, PŘETĚŽOVÁNÍ OPERACÍ... 3 PŘETÍŽENÍ OPERÁTORŮ... 4 ČASTO PŘETĚŽOVANÉ OPERÁTORY... 4 PŘEPISOVÁNÍ... 7 VIRTUÁLNÍ METODY... 10 SEZNAM

Více

4. ZÁKLADNÍ POJMY Z OBJEKTOVĚ ORIENTOVANÉHO PROGRAMOVÁNÍ

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

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená

IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená Výčtový typ Motivační příklad řízení semaforu na křižovatce = přepínání červená/oranžová/zelená const int CERVENA = 0; const int ORANZOVA = 1; const int ZELENA = 2; int prististav = CERVENA; while (true)

Více

typová konverze typová inference

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

Více

Komponenty v.net. Obsah přednášky

Komponenty v.net. Obsah přednášky doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Rozdíl mezi COM a.net Distribuce komponent Programování

Více

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

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ů

Více

PREPROCESOR POKRAČOVÁNÍ

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,

Více

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku Podprogramy zásady: jednu věc programovat pouze jednou podprogram logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku // nacteni strany 1 double

Více

3. Třídy. Základní pojmy objektového programování. Třídy

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

Více

Objektově orientované programování

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

Více

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

Více

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz

Vaše jistota na trhu IT. Balíčky. Rudolf Pecinovský rudolf@pecinovsky.cz Vaše jistota na trhu IT Balíčky Rudolf Pecinovský rudolf@pecinovsky.cz Problémy velkých aplikací Rozsáhlé aplikace používají velké množství názvů objektů a jejich zpráv, které různé části programu sdílí

Více

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

Ú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

Více

KTE / ZPE Informační technologie

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í

Více

20. Projekt Domácí mediotéka

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ý

Více

Programování v C++ 2, 4. cvičení

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

Více

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016 ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce

Více

9. přednáška - třídy, objekty

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

Více

RMI Remote Method Invocation

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

Více

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

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

Více

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

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,

Více

"Václav Klaus". public class Clovek { protected String jmeno; protected int roknarozeni; public Clovek(String j, int rn) {

Václav Klaus. public class Clovek { protected String jmeno; protected int roknarozeni; public Clovek(String j, int rn) { 4. Třída versus objekt Co je třída a objekt? Třída (také poněkud nepřesně zvaná objektový typ) představuje skupinu objektů, které nesou stejné vlastnosti "stejné" je myšleno kvalitativně, nikoli kvantitativně,

Více

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

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ř.

Více

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.

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,

Více

17. Projekt Trojúhelníky

17. Projekt Trojúhelníky Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským

Více

Dědičnost (inheritance)

Dědičnost (inheritance) Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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ů

Více

Java a XML. 10/26/09 1/7 Java a XML

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

Více

Algoritmizace a programování

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,

Více

Podmínky na zápočet. Java, zimní semestr

Podmínky na zápočet. Java, zimní semestr Podmínky na zápočet zápočtový test u počítače zápočtový program "rozumná" velikost téma do 12. 1. 2018 emailem cvičícímu domácí úkoly 225 bodů (max 450) docházka víc než 3 absence 315 bodů 1 Domácí úkoly

Více

Programovací jazyk Java

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

Více

PB161 Programování v jazyce C++ Přednáška 7

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

Více

Java - řazení objektů

Java - řazení objektů Java - řazení objektů Kapitola seznamuje se základními principy řazení objektů Klíčové pojmy: Přirozené řazení, absolutní řazení, ideální porovnávatelná třída ŘAZENÍ OBJEKTŮ U objektů není příliš jasné,

Více

1. Dědičnost a polymorfismus

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ář

Více

PB161 Programování v jazyce C++ Přednáška 7

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

Více

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write(\nPrumerna teplota je {0}, tprumer); Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());

Více

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. 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

Více

Programování v C++ 3, 3. cvič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

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

IRAE 07/08 Přednáška č. 7. Začátek (head)

IRAE 07/08 Přednáška č. 7. Začátek (head) Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků

Více

OOPR_05. Případové studie

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

Více

3 KTE / ZPE Informační technologie

3 KTE / ZPE Informační technologie 3 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ň Komentáře

Více

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

Zapouzdření. Tomáš Pitner, upravil Marek Šabo Zapouzdření Tomáš Pitner, upravil Marek Šabo Co je zapouzdření Naprosto zásadní vlastnost objektového přístupu, možná nejzásadnější Jde o spojení dat a práce s nimi do jednoho celku - objektu Data jsou

Více

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í. 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;

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

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................

Více

Abstraktní třída a rozhraní

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ě

Více

Paměť počítače. alg2 1

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

Více

PB161 Programování v jazyce C++ Přednáška 4

PB161 Programování v jazyce C++ Přednáška 4 PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20

Více

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 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

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Java Výjimky Java, zimní semestr

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í

Více

Třída jako datový typ. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Třída jako datový typ. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Třída jako datový typ A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Třídy a objekty Věci okolo nás lze hierarchizovat do tříd (konceptů). Každá třída je reprezentována svými

Více