PowerPoint Presentation

Podobné dokumenty
enum

PowerPoint Presentation

Identity Lifecycle Management

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach

História

DediĊnosť

Identity Lifecycle Management

PowerPoint Presentation

Microsoft PowerPoint - OOP_prednaska_10.pptx

midterm2014_1

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

PowerPoint Presentation

Objektovo orientované programovanie

Microsoft Word - 6 Výrazy a vzorce.doc

midterm2019

Identity Lifecycle Management

1

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Relačné a logické bázy dát

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Konkurentné programovanie

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

Poloautomatická anotácia stránok internetových obchodov Dávid Varga 4Ib, Abstrakt. Bakalárska práca sa zaoberá vytvorením metód na indukciu

Identity Lifecycle Management

PowerPoint Presentation

III. Diferenciálny počet funkcie viac premenných (Prezentácia k prednáškam, čast B) Matematická analýza IV (ÚMV/MAN2d/10) RNDr. Lenka Halčinová, PhD.

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie z

ALBATROS_MEDIA

Prezentácia programu PowerPoint

User:Andrej Sedlacek

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Microsoft Word - skripta3b.doc

Axióma výberu

NÁVRH UČEBNÝCH OSNOV PRE 1

Informačné technológie

Konkurentné programovanie

Photo Album

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

Autoregresné (AR) procesy Beáta Stehlíková Časové rady, FMFI UK Autoregresné(AR) procesy p.1/22

Metodika práce s gitom Spôsob práce s gitom V projekte sa budú udržovať dve hlavné vetvy: - Master - Hlavná vetva, ktorá odráža otestovaný funkčný kód

Snímka 1

6

Microsoft Word - prirucka_katedry_nova

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

fm 2012 a predajňa.doc

Funkcie viac premenných

SRPkapitola06_v1.docx

Úvod do mobilného operačného systému ANDROID

STRUČNÝ NÁVOD KU IP-COACHU

Prenosový kanál a jeho kapacita

Informovanie, interpretácia, sprístupnenie.

Prezentácia programu PowerPoint

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Zápisnica zo stretnutia #4 Tím sixpack Bc. Jozef Blažíček B

Microsoft PowerPoint - SLIDES_02DTD.ppt

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

Snímka 1

gis5 prifuk

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

Import absencí z ASC

Matej Kendera - PDF, word, lucene, java

Template for PowerPoint

1 Rekurencie este raz riesenia niektorych rekurencii z cvik. mame danu rekurenciu napr T (n) = at ( n b ) + k. idea postupu je postupne rozpisovat cle

2

aplikácia do mobilého telefónu na stiahnutie digitálneho tachografu

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

Praktické paralelné programovanie v jazykoch C# 4.0 a C++

FAULTS DIAGNOSIS OF CONTROL SYSTEM USING THE OBSERVER

Microsoft PowerPoint - Prog_p08.ppt

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

MO_pred1

Microsoft Word - zapis-predmetov-AiS

Microsoft Word - Novinky_2012_2.doc

Metrické konštrukcie elipsy Soňa Kudličková, Alžbeta Mackovová Elipsu, ako regulárnu kužeľosečku, môžeme študovať synteticky (konštrukcie bodov elipsy

Microsoft Word - Zaver.pisomka_januar2010.doc

Komunikácia deklarantských SW s IS CEP Bratislava OPIS je spolufinancovaný z ERDF

Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Inf

Prezentace aplikace PowerPoint

Úvodná prednáška z RaL

Microsoft Word - pouzivatelska_prirucka.doc

Microsoft Word - ecoflex_mr.doc

Republika Srbsko MINISTERSTVO OSVETY, VEDY A TECHNOLOGICKÉHO ROZVOJA ÚSTAV PRE HODNOTENIE KVALITY VZDELÁVANIA A VÝCHOVY VOJVODINSKÝ PEDAGOGICKÝ ÚSTAV

PowerPoint Presentation

Snímka 1

SAEAUT SNMP OPC Server

Snímka 1

Prezentácia programu PowerPoint

Výnimky

User:tomas.melicher

MO_TČOZ_TLY_2018_2019

Národné centrum popularizácie vedy a techniky v spoločnosti

Analýza sociálnych sietí Geografická lokalizácia krajín EU

Sablona prispevky MSI

Dokumentácia k inžinierskemu dielu

Zdravé sebavedomie odzrkadľuje spôsob, akým vidíme sami seba. Ak sa chceme stať sebavedomejšími ľuďmi, musíme zmeniť to, čo si myslíme sami o sebe, ak

9.1 MOMENTY ZOTRVACNOSTI \(KVADRATICKÉ MOMENTY\) A DEVIACNÝ MOMENT PRIEREZU

NSK Karta PDF

Prepis:

@ λ <T> UINF/PAZ1c epizóda 8

framework vs. knižnica

Knižnica vs. Framework Knižnica množina tried a ich metód, ktoré vytvoríme/zavoláme a oni pre nás niečo spravia Framework program, ktorému podhodíme množinu tried a metód a on ich vytvorí/zavolá To, čo mu podhadzujeme, musí byť v tvare, ktorému framework rozumie Typicky označíme tie triedy a metódy, ktoré má použiť, cez anotácie

ANOTÁCIE

Anotácie a.k.a. zavináče = Metadáta o programe Niektoré z nich ste už videli hore dole @Override označuje prekrývajúcu metódu, resp. metódu ktorá implementuje abstraktnú metódu @Test Metóda, predstavujúca unit test @SuppressWarnings("unchecked") označuje metódu, v ktorej sa nemá upozorňovať napr. na neuvedenie vnútorného typu generickej triedy, alebo neisté pretypovania List zoznam = new ArrayList();

Použitie anotácií Informácia pre IDE IDE nás upozorňuje, ak si myslíme, že prekrývame (@Override) a pritom neprekrývame IDE potlačí upozorňovania (warnings) Spracovanie počas kompilácie / nasadzovania Rôzne nástroje môžu generovať nový kód, súbory, dokumnetáciu... Spracovanie počas behu programu Program si nájde anotované triedy, metódy alebo dokonca parametre metód a môže vyrábať ich objekty, volať na nich metódy (až počas behu zistí, aké majú meno)

Vypisovač entít cez anotácie Vytvoríme si anotáciu @DaoGetter na metódy, ktoré vracajú Dao objekty Vytvoríme si anotáciu @EntityGetter na metódy, ktoré vracajú všetky entity Uvedieme tieto anotácie nad metódy, ktoré chceme poskytnúť vypisovaču Vypisovač si v DaoFactory nájde nejaké gettery Dao objektov a na každom Dao objekte si zavolá metódy na vrátenie entít a vypíše ich na konzolu

Anotácie a frameworky Majme framework na sprístupňovanie metód na internete cez vzdialené volanie majme metódu int súčet(int a, int b) v triede HardMath, ktorú chceme sprístupniť programátor frameworku dopredu nevie aké metódy a v akých triedach bude sprístupňovať framework však potrebuje objekt triedy HardMath, aby na ňom zavolal metódu súčet, keď ju niekto z internetu chce volať závislosť tak si framework vytvorí objekt triedy HardMath, lebo ju vie nájsť pomocou jeho anotácie pomocou ďalšej anotácie si nájde metódu súčet, ktorú má sprístupniť

To ako už nebudem vytvárať objekty a spúšťať na nich metódy?

LAMBDA VÝRAZY

Lambda výrazy Lambda kalkulus: formálny výpočtový model od r. 1936 Základný rozdiel je v uvažovaní procedurálny prístup : funkcii podhodíme dáta cez vstupné parametre a spustíme ju a vráti výsledok Lambdy = funkcionálny prístup : dátam podhodíme funkciu a tá sa na nich vykoná a vráti nejaké dáta Dátam podhadzujeme pomenované alebo anonymné funkcie študenti.dajáčko.potľapkajpopleci.pošlidomov študenti.(študent s -> s.setznámka( A )).potľapkajpopleci...

Lambdy v jave Každá trieda implementujúca interfejs s jednou metódou sa dá zapísať lambdou EventHandler<ActionEvent> eh = new EventHandler<ActionEvent>() { public void handle(actionevent e){ System.out.println( klik! ); } } button.setonaction(eh); EventHandler<ActionEvent> eh = ActionEvent e -> System.out.println( klik! ); button.setonaction(eh);

Lambdy v jave Každá trieda implementujúca interfejs s jednou metódou sa dá zapísať lambdou EventHandler<ActionEvent> eh = new EventHandler<ActionEvent>() { public void handle(actionevent e){ System.out.println( klik! ); } } button.setonaction(eh); EventHandler<ActionEvent> eh = ActionEvent e -> System.out.println( klik! ); button.setonaction(eh); button.setonaction(actionevent e -> System.out.println( klik! ));

Lambdy v jave Každá trieda implementujúca interfejs s jednou metódou sa dá zapísať lambdou EventHandler<ActionEvent> eh = new EventHandler<ActionEvent>() { public void handle(actionevent e){ System.out.println( klik! ); } } button.setonaction(eh); EventHandler<ActionEvent> eh = ActionEvent e -> System.out.println( klik! ); button.setonaction(eh); button.setonaction(actionevent e -> System.out.println( klik! )); button.setonaction(e -> System.out.println( klik! ));

DEMO

Prúdy v kolekciách na volanie nejakých funkcií pre každý prvok vyrobíme prúd prvkov: kolekcia.stream().filter(predicate p) ak p vráti true prvok ide do výstupného prúdu.map(function f) f vracia pre každý prvok prúdu nejaký prvok pre výstupný prúd.reduce(binaryoperator bo) - vezmeme prvé dva prvky a nahradíme ich jedným, potom ho vezmeme a spolu s dalším urobíme jeden,....sorted(coparator c) výstupný prúd bude utriedený.collect(collector c) prúd prerobí na výsledný objekt (najčastejšie kolekciu).foreach(consumer c) pre každý prvok vykoná akciu a nevráti nič

DEMO pokračuje...

GENERICKÉ TRIEDY <T>

Kontajnery, krabice, kolekcie Špeciálne prípady asociácie Objekt triedy funguje ako kontajner pre objekty inej triedy Funkcionalita je rovnaká, len vie byť realizovaná nad rozličnými dátovými typmi Nechceme zoznam nejakých objektov, ale zoznam používateľov Nechceme porovnávať nejaké dva objekty, ale dva reťazce

Generická trieda trieda je charakterizovaná dvoma zložkami typ vonkajška + typ vnútra List<Zviera> zvierata = new ArrayList<Zviera>(); class Porovnavac extends Comparator<User> {.. } Trieda ArrayList sa nazýva generická Interfejsy List a Comparator sú tiež generické

Generická trieda Uzol v strome Čo sa môže nachádzať v uzle? niekedy celé číslo, inokedy reťazec, alebo lokalita, alebo XML tag V celom strome budeme pracovať iba s jedným dátovým typom (napr. strom lokalít) typ uzlov si vyberie ten, kto ten strom vyrobí podmienka pre to, aby Uzol bol dobrým kandidátom pre generickú triedu

Uzol<T> public class Uzol<T> { private T data; private Uzol<T> lavy; private Uzol<T> pravy; } public T getdata(){ return data; } T = ľubovoľný dátový typ, určí sa pri vytváraní inštancie: Uzol<Lokalita> u = new Uzol<Lokalita>();

Použitie generických tried Ak nepoužijeme generiká, musíme pracovať s typom Object namiesto typom T. String lokalita = (String) uzol.getdata(); Vždy, keď máte nutkanie vytvoriť inštančnú premennú typu Object, uvažujte nad generikom.

Pozor na dedičnosť Vieme že ArrayList implemetuje List a ak k tomu aj Mesto dedí od Lokality List<Lokalita> lokality = ArrayList<Mesto>(); lokality.add(new Okres( Košice - okolie )); Okres tiež je lokalita ArrayList očakáva, že mu do metódy add pripláva mesto

Porovnávajúce sa dáta v uzle Niekedy potrebujeme, aby vnútorný typ spĺňal nejaké predpoklady implmentuje daný interfejs, alebo rozširuje nejakú konkrétnu triedu public class Uzol<T extends Comparable<T>> { private T data; } public boolean isgreaterthan(uzol<t> other) { return (data.compareto(other.data) > 0); } Vieme zavolať, lebo nech už bude v uzle čokoľvek, bude to mať metódu compareto