Programování II 1. přednáška. Alena Buchalcevová

Podobné dokumenty
BlueJ a základy OOP. Programování II 1. cvičení Alena Buchalcevová

1. Programování, typy programovacích jazyků, historie.

16. února 2015, Brno Připravil: David Procházka

JAZYK C PRO MIKROKONTROLÉRY

Operační systém teoreticky

Realizační tým Zhotovitele. Oprávněné osoby. Seznam subdodavatelů. Tabulka pro zpracování nabídkové ceny. Zadávací dokumentace

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Novinky v Maple T.A. 10

Virtuální přístroje. Použití grafického programování v LabVIEW. Ing. Pavel Mlejnek

Programování v jazyce C. Proces celkového sestavení programu ze zdrojového kódu, vývojové nástroje Linuxu

Google Apps. pošta 2. verze 2012

Mobilní aplikace pro ios

GIS HZS ČR pro ORP a přednostní připojení k veřejné komunikační síti

PROGRAMOVÁNÍ SVĚTELNÝCH OZDOB

DUM 13 téma: Příkazy pro výběr

E-ZAK. metody hodnocení nabídek. verze dokumentu: QCM, s.r.o.

Internetová agentura. Předimplementační analýza webu

Projekt INTERPI. Archivy, knihovny, muzea v digitálním světě Your contact information

Windows 10 (6. třída)

Historie výpočetní techniky Vývoj počítačů 4. generace. 4. generace mikroprocesor

INTEGROVANÁ STŘEDNÍ ŠKOLA TECHNICKÁ BENEŠOV Černoleská 1997, Benešov. Tematický okruh. Ročník 1. Inessa Skleničková. Datum výroby 21.8.

PC, POWER POINT, dataprojektor

Plán předmětu Název předmětu: Školní rok: Ročník: Semestr: Typ předmětu: Rozsah předmětu: Počet kreditů: Přednášející: Cvičící: Cíl předmětu

Návod na připojení k ové schránce Microsoft Windows Live Mail

Příklady a návody. Databázová vrstva

Ministerstvo pro místní rozvoj. podprogram

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Sada 2 Stavební provoz

imedicus - internetové objednávání

Každý jednotlivý záznam datového souboru (tzn. řádek) musí být ukončen koncovým znakem záznamu CR + LF.

ISÚI Informační systém územní identifikace Proč? Co? Kde? Kdo? Jak? Kdy?

Přínosy ekodesignu pro. Klára Ouředníková a Robert Hanus Centrum inovací a rozvoje

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Dopady zavedení registru práv a povinností na orgány veřejné moci

Ekonomika Základní ekonomické pojmy

Sekvenční logické obvody

Sada 2 - MS Office, Excel

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: ový klient Anotace:

Verzovací systémy (systémy pro správu verzí)

Česká republika Česká školní inspekce. Olomoucký inspektorát - oblastní pracoviště INSPEKČNÍ ZPRÁVA. Základní škola a gymnázium města Konice

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

Sada 2 - MS Office, Excel

Objektově orientovaný přístup

Zvyšování kvality výuky technických oborů

Veřejné licence pro počítačové programy

Každý může potřebovat pomoc aneb K čemu je sociální práce? PhDr. Hana Pazlarová, Ph.D. hana.pazlarova@ff.cuni.cz

Základy objektové orientace I. Únor 2010

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013

PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK

Ceník služeb IP Connect

Tvorba WWW stránek Podmínky. Jan Růžička Institut geoinformatiky VŠB-TU Ostrava, HGF tř. 17.listopadu Ostrava-Poruba

Číslo materiálu: VY 32 INOVACE 30/12

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

Sada 1 CAD Registrace studentů a učitelů středních škol pro účely stažení legálního výukového SW firmy Autodesk

Povinná literatura: [1] ČASTORÁL, Z. Strategický znalostní management a učící se organizace. Praha : EUPRESS, 2007.

Poznámky k verzi. Scania Diagnos & Programmer 3, verze 2.27

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Uplatnění nových informačních technologií ve výuce a na zdravotnickém pracovišti. Marie Marková

Popis a funkce klávesnice Gama originální anglický manuál je nedílnou součástí tohoto českého překladu

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

Projekty pro výuku programování v jazyce Java

PSYCHOLOGIE JAKO VĚDA

Nářadí pro řemeslo 15 Jak je tato kniha uspořádána 16 Vzorová aplikace 17 Kontakt na autora 18. Plánování projektu 19

Escort Servis Night Prague

Jiří Mašek BIVŠ V Pra r ha

Google AdWords - návod

STŘEDNÍ ODBORNÁ ŠKOLA a STŘEDNÍ ODBORNÉ UČILIŠTĚ, Česká Lípa, 28. října 2707, příspěvková organizace

Bezpečnostní úschovné objekty

( ) Neúplné kvadratické rovnice. Předpoklady:

Implementační rozdíly ve vývoji IS při použití bezschémové a relační databáze

Zkušenosti z implementace IS PROXIO - Město Žďár nad Sázavou Ing. Libor Vostrejš vedoucí odboru IT, Ing. Jiří Berkovec MARBES CONSULTING s.r.o.

Název: VY_32_INOVACE_PG3309 Booleovské objekty ve 3DS Max - sčítání a odčítání objektů

Aplikační rozhraní pro geografickou datovou sadu židovských hřbitovů

Art marketing Činoherního klubu

Svobodná chebská škola, základní škola a gymnázium s.r.o.

Srovnání posledních dvou verzí studijních plánů pro studijní obor. Informační systémy. (studijní program Aplikovaná informatika)

Připravte si prosím tyto produkty Instalace hardwaru Výchozí nastavení z výroby

Poznámky k verzi Remote Support Platform 3.0

Identifikátor materiálu: ICT-1-06

Manuál TimNet Boiler

ČESKÁ TECHNICKÁ NORMA

Veřejný dálkový přístup (VDP) k datům základního registru RÚIAN/ISÚI

Technické aspekty EET

Formulář návrhu projektu pro 4. veřejnou soutěž programu ALFA

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

MS WORD 2007 Styly a automatické vytvoření obsahu

Integrovaná střední škola, Sokolnice 496

SIS INSTALAČNÍ PŘÍRUČKA (SITE INFORMATION SYSTEM) Datum vytvoření: Datum aktualizace: Verze: v 1.3 Reference:

Vítězslav Bártl. březen 2013

Pravidla pro publicitu v rámci Operačního programu Doprava

20. Projekt Domácí mediotéka

Projekt Výchova ke zdraví a zdravému životnímu stylu Závěrečná zpráva

STRUKTUROVANÉ UČENÍ. Příklady vzdělávací práce u žáků s poruchami autistického spektra v naší škole

Systém zvukové signalizace a spouštění motoru na základě stavu světla

Sada 2 Microsoft Word 2007

Signály Mgr. Josef Horálek

Kód předmětu: MSBP_PC1

Transkript:

Programování II 1. přednáška Alena Buchalcevová

Cíle kurzu Seznámit se s principy objektově orientovaného programování v jazyce Java Základní seznámení s objekty Třídy a instance Volání metod, datové atributy Ladění programů Primitivní a referenční datové typy Základní řídící struktury Jednoduché algoritmy Datové struktury (kolekce, mapy a pole) Statické proměnné a metody Výjimky Dědičnost a rozhraní Práce se soubory Grafické uživatelské rozhraní 2

Co v kurzu nebude vytváření síťových, databázových a vícevrstvých aplikací programování pro web programování pro mobilní zařízení 3

Alena Buchalcevová Programování II Metodika výuky metodika Object First s prvky metodik Design Patterns First a Test First. Základní principy jsou: Výuka probíhá od začátku objektově. Většina projektů hned od začátku obsahuje několik tříd, studenti se učí pracovat s jejich metodami, skládají nové objekty ze stávajících. Co nejdříve je vysvětlen pojem rozhraní. Studenti se učí používat vývoj řízený testy tj. psát jednotkové testy. Studenti jsou od začátku seznamováni se zásadami správného objektového návrhu a s existencí návrhových vzorů. Studenti jsou vedeni k dodržování základních pravidel pro zápis kódu tj. dodržování konvencí pro identifikátory, odsazování kódu, správné pojmenovávání datových atributů, metod, tříd. Pro kontrolu se využívá pmd. 4

Alena Buchalcevová Programování II Vývojová prostředí BlueJ Netbeans 5

Alena Buchalcevová Programování II Literatura Literatura základní PECINOVSKÝ, RUDOLF. JAVA 7 UČEBNICE OBJEKTOVÉ ARCHITEKTURY PRO ZAČÁTEČNÍKY. 1. VYD. PRAHA : GRADA PUBLISHING, 2012. 495 S. ISBN 978-80-247-3665-5. PECINOVSKÝ, RUDOLF. JAVA 8 ÚVOD DO OBJEKTOVÉ ARCHITEKTURY PRO MÍRNĚ POKROČILÉ 1. VYD. PRAHA : GRADA PUBLISHING, A.S, 2014. 656 S. ISBN 978-80-247-4638- 8. Literatura doporučená BRUCKNER, Tomáš, VOŘÍŠEK, Jiří, BUCHALCEVOVÁ, Alena, STANOVSKÁ, Iva, CHLAPEK, Dušan, ŘEPA, Václav. Tvorba informačních systémů. 1. vyd. Praha : Grada Publishing, 2012. 357 s. ISBN 978-80-247-4153-6. PECINOVSKÝ, Rudolf. Návrhové vzory. Computer Press. 2007 6

Alena Buchalcevová Programování II Internetové zdroje http://www.oracle.com/technetwork/java/index.html oficiální stránky Javy 7

Java objektově orientovaný programovací jazyk přenositelný na různé platformy můžeme vytvářet různé druhy programů aplikace applety serverlety a JSP midlety verze 1.0, 1.1, atd. od verze 1.2 se označují jako Java2 poslední verze Java SE 8u72 8

Základní pojmy Zdrojový kód kód programu zapsaný v nějakém programovacím jazyce Cílový kód binární kód, kód vytvořený po překladu zdrojového kódu, je spustitelný Bytekód (Java) specifický mezikód, vzniká jako cílový kód, ale je spouštěn a prováděn běhovým prostředím (Runtime Environment, Virtualní stroj) Knihovna množina souborů obsahujících kód pomocných podprogramů a objektů. Program pak může tyto knihovny připojit a využívat jejich obsah. 9

Java Kompilátor jazyka Java byte kód Java Virtual Machine (interpret) SŘBD: databáze OS: procesy, paměť, disk, síť HW: procesor, paměť, strojový kód 10

procedurální přístup OO přístup Procedura objekt Mars Vypočti rychlost Vypočti tření Vypočti celkovou potřebu paliva objekt Raketa Vypočti váhu rakety... objekt Země 11

procedurální přístup OO přístup Procedury Vypočti mzdu dělníka Vypočti mzdu úředníka objekt Úředník.VypočtiMzdu objekt Dělník.VypočtiMzdu 12

Srovnání obou přístupů základním principem je abstrakce rozdíl je jen ve způsobu provádění této abstrakce procedurální přístup OO přístup data a funkce odděleny data a procedury jsou spojeny v objektech 13

Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 14

Abstrakce proces vytváření jednoduché reprezentace složité reality Nelze udržovat veškeré informace, je třeba rozhodnout, které informace jsou důležité a které ne Např. objekt Student váha, krevní skupina, barva vlasů,..? jméno a příjmení, adresa, rodné číslo, fakulta, obor Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 15

Objekt je určitá část IS (programu), která zpravidla odráží reálný objekt, ale zachycuje jej v kontextu daného IS příklady objektů - Studentský IS Student Jan Vokurka Učitel Pekárek Zkouška, kterou dělal Jan Vokurka u učitele Pekárka dne 15.9.2005 Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 16

Alena Buchalcevová Programování II obsahuje zvnějšku neviditelnou vnitřní paměť (atributy, data) má schopnost přijmout a zpracovat zprávu zvnějšku obsahuje metody, tj. procedury a funkce, které vykonávají nějakou činnost nad vnitřní pamětí objektu 17 může obsahovat jiné objekty

Objekt abstrakce objektu reálného světa má svou identitu každý objekt má určité vlastnosti, které nazýváme atributy, určité chování, které je reprezentováno metodami objektu, reaguje na určité události, má určité vztahy s jinými objekty. 18

Životní cyklus objektu zrod objektu život objektu zánik objektu zajišťuje konstruktor alokace paměti pro objekt naplnění atributů objektu zrod vnořených objektů reakce objektu na zprávy objektu zaslané uvolnění paměti alokované objektem zabezpečení zániku vnořených objektů 19 Programování II Alena Buchalcevová

Třída objektů(class) Každý objekt (např. student) má stejné datové položky a musí reagovat na stejné zprávy. Nemá smysl deklarovat každý objekt znovu a uvádět u něj data a metody - je možné definovat třídu jako typ proměnné, na základě které se potom deklarují objekty je abstrakcí objektů se stejnými vlastnostmi, stejným chováním a stejnými vztahy k ostatním objektům. Příklady tříd Osoba, Firma, Auto, Student Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 20

Třída objektů Každý objekt "zná" svou třídu - třída je implicitní vlastností objektu Objekty téže třídy mají vždy stejné atributy, většinou se liší hodnotami atributů mají mít stejný sémantický význam 21

Třídy pro kreslení tvarů Ctverec velikost xpozice ypozice barva Kruh prumer xpozice ypozice barva kresli vymaz zmenbarvu posunvpravo kresli vymaz zmenbarvu posunvpravo 22

Zapouzdření (encapsulation) nejdůležitější princip OOP data a s nimi pracující procedury a funkce jsou zabaleny do jednoho celku data objektu jsou skryta před ostatními objekty a lze k nim přistupovat pouze pomocí metod objektu Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 23

Výhody zapouzdření kód mění jen vlastník třídy, při změně uvnitř třídy (např. změna typu vnitřní proměnné) se nezmění kód, který tuto třídu používá, uživatel třídy nemusí znát detailní implementaci třídy, zná jen rozhraní jednou odladěné části programu se nemusí znovu ladit, je možné vytvářet objekty simulanty, které mají definováno jen rozhraní a vnitřní zpracování je simulováno, při ladění programu je možné modifikovat metody 24

Ukrývání implementace ( information hiding ) možnost používat metody objektů bez znalosti jejich implementace objekt je černá skříňka, uživatele zajímá jen rozhraní objektu - metody, které objekt zpřístupňuje navenek Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 25

Komunikace objektů Základní vlastností objektů je vysílání a přijímání zpráv, objekt musí mít přístup k druhému objektu musí mít referenci (odkaz) na druhý objekt Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 26

Dědičnost (inheritance) není primárním objektovým principem, i když je důležitým konstruktem OO jazyků představuje znovupoužitelnost na úrovni deklarace třídy je realizací vztahu generalizace-specializace Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 27

Dědičnost Odvozená třída obsahuje všechny datové položky třídy předka kopíruje rozhraní třídy předka, dědí chování třídy předka Student idstudenta jmeno prijmeni fakulta obor stupen rodnecislo Osoba jmeno prijmeni rodnecis lo VSStudent fakulta obor stupen idstudenta 28

Polymorfismus (polymorphism) Alena Buchalcevová Programování II mnoho forem různé objekty mohou reagovat na stejnou zprávu různě vlastnost, která umožňuje pojmenovat určitou akci jedním jménem, přičemž její implementace se v jednotlivých třídách může lišit Základní principy OOP používání abstrakce, existence objektů, definování tříd objektů, zapouzdření, ukrývání implementace, komunikace objektů, dědičnost, polymorfismus. 29

Přínosy OOP snadné použití části kódu v různých programech, snížené náklady na vývoj, možnost snadno rozdělit projekt mezi členy týmu, vylepšené možnosti testování a ladění, vyšší kvalita SW, možnost vytvářet jednoduché a konzistentní objekty a skrýt přitom implementační detaily 30