4IT101 Základy programování

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

(instance konkrétní třídy)
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
VY_32_INOVACE_4.3.IVT1.15/Oc Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jaroslav Ochodek CZ.1.07/1.5.00/ Tvorba webových.
Pole, ukazatele a odkazy
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
4IT1014IT101 Pátá přednáška Datové struktury - pokračování Statické prvky třídy.
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
Programování v C++ Cvičení.
Čtvrté cvičení Objektové programování Objektový model v Javě
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.
Programování PA - 2.
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
PHP PHP – základy syntaxe (část 1) - 03 Mgr. Josef Nožička IKT PHP
C# - struktury, výčtové typy, pole
Druhá přednáška Datové typy a operátory Zapouzdření Pojem rozhraní
VY_32_INOVACE_4.3.IVT1.11/Oc Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jaroslav Ochodek CZ.1.07/1.5.00/ Tvorba webových.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Softwareová architektura
Objektové programování
Roman Valeš projekt AVT. Cíl práce Obeznámení s programovacím jazykem Java Práce s vývojovými nástroji Hierarchie kódu Androidu Vytvoření Android aplikace.
Ant Připravil: Ing. Jan Kolomazník. strana 2 Proč vznikl Potřeba sestavovat komplexní Nezávisle na platformě Popis založený na xml Spouštění různých úloh.
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
6. cvičení Polymorfismus
Počítače a programování 1
PB161 Právo friend, přetěžování operátorů, přetypování PB161 | Friend, operátory PB161 – Programování v jazyce C++ Objektově Orientované Programování.
CSS styly Kaskádové styly (CSS – Cascading Style Sheets) jsou prostředkem, který zajišťuje jednotný vzhled publikovaných stránek. Technologii CSS podporují.
VISUAL BASIC PRALG.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
Databázové modelování
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Šesté cvičení Výjimky Balíky.
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TEORETICKÉ ELEKTROTECHKY Oddělení informatiky Java Micro Edition pro mobilní zařízení.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
PHP Programy pro tvorbu WWW stránek - 01
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Úvod do programování2 Vyučující: Mgr. Vítězslav Jersák Web: xjv.webnode.cz.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Java – úvod.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Počítače a programování 2
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Připravil: Ing. Jan Kolomazník, Ph.D.
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Internetové publikování Dynamické HTML
Oblast platnosti identifikátoru (1)
C# přehled vlastností.
Transkript prezentace:

4IT101 Základy programování

Ing. Jarmila Pavlíčková Konzultační hodiny: úterý 14:30 – 16:00 JM 369 středa 12:30 - 14:00 NB 424 Mail: pavjar@vse.cz

Obsah kurzu Základy objektového přístupu realizované v programovacím v jazyce Java. Základní znalosti o informatice. Základní znalosti o programovacích jazycích. Metodika výuky - metodika object-first rozšířenou o prvky test-first a seznámení s návrhovými vzory (design patterns first)

Podmínky ukončení Známka počet bodů 1 90 – 100 2 75 – 89 3 60 – 74 4+ 50 – 59 4 59 a méně

Bodování Body Povinné minimum Domácí úkoly, testy, semestrální úloha – závisí na cvičícím 40 5 Semestrální úloha - Adventura 30 10 Závěrečný test 15 Celkem 100

Podmínky pro ukončení Body lze ztratit za neúčast na cvičeních (více než 3 neomluvené absence). Lze získat prémiové body za nadstandardní řešení úkolu. Při zjištěném pokusu o podvod (odevzdání cizí práce, cizího programu) bude práce ohodnocena -5 body. Opakovat lze pouze závěrečný test.

Literatura Pavlíčková, Pavlíček Úvod do Javy Skriptum VŠE v pdf k dispozici na java.vse.cz

Literatura Gála, Pour, Šedivá: Podniková informatika 2., přepracované a aktualizované vydání. Grada 2009 ISBN 978-80-247-2615-1 Rudolf Pecinovský: Myslíme objektově v jazyku Java, Grada ISBN 978-80-247-2653-3 Rudolf Pecinovský: OOP Naučte se myslet a programovat objektově, Computer Press, 2010, ISBN 978-80-251-2126-9

Zdroje informací ke kurzu ISIS Sylabus Prezentace k přednáškám Odevzdávání domácích úkolů a semestrálních prací Testy java.vse.cz Podrobnosti k hodnocení studentů, literatuře, instalacím potřebného software… Informace od jednotlivých cvičících www.oracle.com/technetwork/java/index.html oficiální stránky Javy www.java.cz

Java

Java Java je objektově orientovaný programovací jazyk, ale také platforma Aplikace napsaná v Javě, může běžet na každé platformě, pro níž je vyvinut virtuální stroj

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Java EE Platformy Javy – výčet Java SE Java SE (Standard Edition) Desktopové aplikace Applety Java ME (Micro Edition) Především v mobilních telefonech Zatím převážně hry, ale množí se aplikace spolupracující se servery Midlety Java EE (Enterprise Edition) Nadstavba nad Java SE Velké distribuované aplikace Podporuje vícevrstvou architekturu Servlety, JSP, EJB Java ME Java EE Java SE

Soubor se zdrojovým kódem, má koncovku java. Překladač javac Pro všechny platformy stejné Pro všechny platformy stejné Soubor s bytekódem, má koncovku class. Pro všechny platformy stejné Java Virtual Maschine Pro každou platformu jiná JVM

Verze Javy Červenec 2011 Verze 7.0 1996 verze 1.0 1997 verze 1.1 (JDBC) 1998 verze 1.2 (Collections) 2000 verze 1.3 (HotSpot) 2002 verze 1.4 2004 verze 5.0 (Generika, významné úpravy) 2006 verze 6.0 Červenec 2011 Verze 7.0

Zkratky.. a zkratky.. a zkratky.. Java SE Java EE Java ME JDK JRE EJB JSP JDBC AWT JDO RMI JNDI JAX

Vlastnosti Javy Jazyk je jednoduchý, objektově orientovaný a povědomý Je robusní a zabezpečená Je nezávislá na platformě a přenositelná Je interpretovaná, vícevláknová a dynamická

Vývojová prostředí JDK 7.0 BlueJ 3.0.8 (www.bluej.org) Další profesionální vývojové nástroje NetBeans (www.netbeans.org) Eclipse (www.eclipse.org) IntelliJ Idea (www.jetbrains.com/idea)

Objekty

Obecné objektové vlastnosti – jeden pohled používání abstrakce definování tříd objektů existence objektů (instancí) zapouzdření a ukrývání implementace komunikace objektů (volání metod) polymorfismus dědičnost

Základní pojmy Objekty Třídy Rozhraní Instance Datové atributy Metody Konstruktory Balíčky Testy Návrhové vzory Deklarace Inicializace Identifikátor Formální parametr metody Skutečný parametr metody Pomocná proměnná

Základní principy OOP Všechno je objekt (opravdu všechno včetně vlastností, dějů, událostí, …) Objektově orientovaný program je v nějakém programovacím jazyce zapsaný popis tříd, jejich instancí (objektů) a zpráv, které si mezi sebou tyto objekty posílají

Objekty Abstrakce z reality Spojení dat (údajů, proměnných, datových atributů) a činností, které je možné s těmito daty provádět (metod)

Třída Třída je obecný popis, ve kterém se deklarují (určí) data, která budou popisovat stav objektu, a metody, které popisují činnosti, jaké je možné s objekty provádět.

obecný popis v programu Třída obecný popis v programu Pes jméno rasa štěkej žer hoňKočku Dášeňka foxteriér Alík neurčena Skutečné objekty v realitě Rek Německý ovčák Asta kólie Instance v paměti počítače

Třída Pes Pes jméno rasa štěkej žer hoňKočku datové atributy instance, každá vytvořená instance je bude mít naplněny vlastními daty Pes jméno rasa štěkej žer hoňKočku metody instance, pro každou vytvořenou instanci je budeme moci spustit, postup bude u všech instancí stejný, ale budou pracovat s datovými atributy konkrétní instance

Třídy pro kreslení tvarů (první cvičení) Ctverec velikost xPozice yPozice barva kresli vymaz zmenBarvu posunVpravo …… Kruh prumer xPozice yPozice barva kresli vymaz zmenBarvu posunVpravo ……

Volání metod (posílání zpráv) Analogie s mobilním telefonem Mohu poslat SMS jen tomu, na koho mám číslo Mohu posílat různé zprávy Reakce různých lidí na stejnou zprávu mohou být různé Pokud příjemce neumí česky, je mi to na nic. (Volám metodu, kterou daná instance nezná, v Javě tento omyl odchytí již překladač.) Pokud pošlu tuto zprávu např. Honzovi, ten na koupení chleba zapomene, když ji pošlu Pepovi, ten chleba přinese. (U objektů nohou instance různých tříd reagovat na stejnou zprávu různě). Příklad s tvary: Když pošlu instanci třídy Ctverec zprávu kresli, nakreslí se čtverec. Když pošlu stejnou zprávu (zavolám metodu) instanci třídy Kruh, nakreslí se kruh.

Vytvoření instance Instance se vytvářejí pomocí specifické metody, která se nazývá konstruktor Při spouštění konstruktoru si musíme uložit odkaz na vznikající instanci

Odkazy v BlueJ

azor alik pepuvAlik pepuvAzor milanuvRek mojeBety Alík neurčena Seznam Pepových psů Azor Jezevčík Rek Německý ovčák pepuvAlik pepuvAzor milanuvRek mojeBety Seznam psů, které venčí Jana Bety Kokršpaněl

Java – jak vytvořit třídu (zapsat kód)

Třída public class Jmeno { Datové atributy Statické proměnné Statický inicializační blok Statické metody Konstruktory Metody Vnitřní třídy Statické vnitřní třídy } vysvětlit, že v hlavičce třídy mohou být i další prvky – abstract, dědičnost, implementace rozhraní, final

Datové atributy instance vyjadřují základní charakteristiky instance třídy, uchovávají informace mezi jednotlivými voláními metod. Každý datový atribut musí mít určený typ a jméno (identifikátor) Určení jména a typu se označuje jako deklarace. Nastavení počáteční hodnoty se nazývá inicializace.

Datové atributy - deklarace a inicializace modifikátory typ identifikátor = hodnota; public class Kruh { private int prumer; private int xPozice; private int yPozice; private String barva; ………zde následují další části deklarace třídy…………… } Pokud není u datových atributů uvedena počáteční hodnota, použije se defaultní. Počáteční hodnota se často přiřazuje v konstruktoru na základě parametrů konstruktoru. prumer = 30; xPozice = 20; yPozice = 60; barva = "modra";

Identifikátor Je tvořen posloupností písmen, číslic a podtržítka, začíná písmenem. Java rozlišuje malá a velká písmena: cislo a Cislo jsou dva různé identifikátory. Používá se pro pojmenování: tříd, datových atributů, metod, lokálních proměnných, parametrů metod, ..... Identifikátor by měl vystihovat obsah toho, co pojmenovává. Pro pojmenování metod se obvykle používají slovesa (s předmětem), pro ostatní podstatná jména (včetně přívlastku). Identifikátor nesmí obsahovat klíčové slovo Javy

Pravidla pro používání malých a velkých písmen v identifikátorech (jménech) Velké písmeno na začátku, všechna počáteční písmena nového slova velká třídy rozhraní Malé písmeno na začátku, všechna počáteční písmena nového slova velká proměnné třídy a instance pomocné proměnné metod formální parametry metod jména metod Všechna písmena velká, jednotlivá slova oddělena _ pojmenované konstanty

Klíčová slova abstract continue for new switch assert default if package synchronized boolean do goto private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static void class finally long strictfp volatile const float native super while červené – pouze rezervované modré – naučí se v IT_114 černé – neprobírá se

Metody instance Metody: Metody jsou deklarovány ve třídě. představují dovednosti, činnosti, které může objekt provádět, umožňují rozdělit kód do jednotlivých částí, Metody jsou deklarovány ve třídě. Metoda se skládá z hlavičky (podpisu) metody těla metody, které je tvořeno pomocí příkazů deklarací lokálních proměnných.

Volání metody instance mujPes.stekej(); String RasaMehoPsa = mujPes.getRasa(); Metoda se pozná dle toho, že jsou uvedeny kulaté závorky !!!! Pro volání metody instance je třeba mít vytvořenou instanci. Pro získání hodnoty z metody je třeba výsledek uložit do proměnné odpovídajícího typu. odkaz na vytvořenou instanci (identifikátor)

Klíčové slovo pro vrácení výsledku a ukončení metody Deklarace metody Jméno metody Typ návratové hodnoty Parametry metody Modifikátor přístupu public String getRasa ( ) { return rasa; } V kódu metody se musí pomocí klíčového slova return vrátit hodnota typu návratové hodnoty uvedené v deklaraci metody. return vrátí hodnotu a ukončí metodu. Klíčové slovo pro vrácení výsledku a ukončení metody Vracená hodnota

Deklarace metody public void zmenVelikost (int novyPrumer) { vymaz(); Jméno metody public void zmenVelikost (int novyPrumer) { vymaz(); prumer = novyPrumer; kresli(); } Nemusí obsahovat return, pak končí provedením všech příkazů. Pokud obsahuje return, tak jen prázdný. Typ void určuje, že metoda nic nevrací formální parametr metody

Hlavička (podpis) metody hlavička má několik částí modifikátor přístupu další (nepovinné) modifikátory typ návratové hodnoty jméno (identifikátor) kulaté závorky (mohou zde být formální parametry metody) vyhazované výjimky(nepovinná část)

Formální parametry metody slouží k předání vstupních hodnot do metody každý parametr je v hlavičce metody deklarován podobně jako datové atributy typem a jménem není možné (ani smysluplné) uvádět modifikátor přístupu (parametr platí pouze v metodě) není možné v hlavičce přiřadit parametru implicitní hodnotu public void pricti( int hodnota = 4) {....... tato část nepřípustná

Obsah metody - příkazy volání metody přiřazení sekvence (posloupnost, blok příkazů) selekce (rozhodování, větvení) iterace (cyklus, opakování) příkaz skoku z cyklu příkaz return vyvolání a obsluha výjimek

Obsah metody - lokální proměnná pro uložení mezivýsledku po ukončení činnosti metody je zrušena deklarace a inicializace pomocné proměnné se od inicializace datového atributu liší tímto: neuvádějí se modifikátory přístupu proměnné nejsou implicitně inicializovány, první hodnotu musí nastavit programátor pomocná proměnná metody

Jak vytvořit instanci V Javě se instance vytvářejí pomocí volání konstruktoru za klíčovým slovem new. Konstruktor je speciální metoda: jmenuje se vždy stejně jako třída, v deklaraci se neuvádí návratový typ, lze použít modifikátory přístupu (public, protected, private, „přátelský“), pokud není uveden v deklaraci třídy, vytvoří se automaticky prázdný a veřejný (public) konstruktory se mohou přetěžovat,

Použití konstruktoru Kruh kruh1 = new Kruh (); určení typu proměnné Dotaz na studenty: Vytváří se lokální proměnná či datový atribut? určení typu proměnné spuštění konstruktoru, v závorce mohou být hodnoty jednotlivých parametrů jméno proměnné (identifikátor) operátor new pro vytvoření instance přiřazovací příkaz

Deklarace konstruktoru public class Kruh { private int prumer; private int xPozice; private int yPozice; private String barva; /* * Vytvoreni noveho kruhu na defaultni pozici (20,60) s defaultni barvou (modra) */ public Kruh() prumer = 30; xPozice = 20; yPozice = 60; barva = "modra"; kresli(); }

Odkaz na tuto instanci (this) public class Kruh { private int prumer; private int xPozice; private int yPozice; private String barva; /* * Vytvoreni noveho kruhu na defaultni pozici (20,60) s defaultni barvou (modra) */ public Kruh() prumer = 30; xPozice = 20; yPozice = 60; barva = "modra"; kresli(); } this.prumer = 30; this.xPozice = 20; this.zPozice = 60; this.barva = "modra"; this.kresli();

Použité zdroje Pavlíčková, Pavlíček : Úvod do Javy Pecinovský: Myslíme objektově v jazyku Java Java a Duke jsou registrované známky firmy Oracle