Objektorienteeritud programmeerimine

Seotud dokumendid
PowerPointi esitlus

PowerPointi esitlus

loeng2

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

(loeng3-ohtlikud_koodiloigud)

Operatsioonisüsteemide ehitus

Funktsionaalne Programmeerimine

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

Scala ülevaade 1 Meetodid, muutujad ja väärtused. Süntaks 2 Lihtsad tüübid ja väärtused. 3 OOP, case-klassid ja mustrisobitus. 4 Puhta Scala väärtusta

Microsoft Word - ref - Romet Piho - Tutorial D.doc

PHP

Andmed arvuti mälus Bitid ja baidid

Microsoft Word - Referaat.docx

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Andmeturve

SQL

Algoritmid ja andmestruktuurid

Advanced AspectJ ja AspectJ 5.0 Aleksei Bogdanov 05. aprill 2006

Tartu Ülikool Loodus- ja täppisteaduste valdkond Arvutiteaduse instituut Sandra Puusepp CVE Referaat Tartu 2018

MTAT Operatsioonisüsteemid - Turvalisus

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

KASUTUSJUHEND

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Väärtusta oma vabadust. Eesti Yale Seifide Kasutusjuhend Mudelid: YSB/200/EB1 YSB/250/EB1 YSB/400/EB1 YLB/200/EB1 YSM/250/EG1 YSM/400/EG1 YSM/520/EG1

PowerPointi esitlus

MTAT Operatsioonisüsteemid - Turvalisus

Microsoft Word - TM70_SP-MG_kasutusjuhend.docx

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Pealkiri

1. AKE Ajalise keerukuse empiiriline hindamine

Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plu

Operatsioonisüsteemi ülesanded

1 Keskkonnamõju analüüs Loone - Pirgu metsakuivenduse rekonstrueerimine Koostajad Koostamise aeg metsaparandusspetsialist Jüri Koort Raplam

TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND ARVUTITEADUSE INSTITUUT Lauri Kongas Turvaauk CVE Referaat aines Andmeturve MTAT Õpp

Loeng05

EE-macbook-retina-12-early2015-qs.indd

Microsoft PowerPoint - EMCS13

Eesti Ettevõtluskõrgkool Mainor rakenduskõrghariduse õppekava ROBOOTIKATARKVARA ARENDUS Õppekava nimetus Õppekava nimetus inglise keeles Kõrgharidusta

E-arvete juhend

1 Keskkonnamõju analüüs Räätsa TP-702 Koostajad Koostamise aeg metsaparandusspetsialist Jüri Koort bioloogilise mitmekesisuse spetsialist T

Word Pro - diskmatTUND.lwp

MOOCi „Programmeerimise alused“ ülesannete lahenduste analüüs

vv05lah.dvi

Tallinna Ülikool Digitehnoloogiate instituut JavaFX rakenduste kujundamine CSS abil Seminaritöö Autor: Hendrik Spiegelberg Juhendaja: Jaagup Kippar Au

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

Linux süsteemi administreerimine

Peafail3_2.dvi

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

eccuaOlipyynised.indd

Microsoft Word - Vx610 EMV KASUTUSJUHEND.doc

(Microsoft Word - Turult k\365rvaldatud ohtlikud tooted_Juuli 2013.doc)

Eetika kui tulevikuvaluuta tarbimiskeskkonnas!? Dr. Mari Kooskora Dotsent, EBS Ärieetikakeskuse juhataja Pilt: Mari Kooskora Sügis

Kom igang med Scratch

MAKSETERMINALI KASUTUSJUHEND

Microsoft Word - EHR.docx

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Microsoft Word - EVS_ISO_IEC_27001;2014_et_esilehed.doc

Avalike teenuste nõukogu koosoleku protokoll ( ) Tallinn nr 26-6/ /2283 Algus: Lõpp: Juhatas: Helena Lepp Protok

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

Microsoft Word ESMA CFD Renewal Decision (2) Notice_ET

Microsoft Word ESMA CFD Renewal Decision Notice_ET

Operatsioonisüsteemid Intelligentne arvutikasutus IFI6070 Tanel Toova

PowerPoint Presentation

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

IVXV võtmerakendus Spetsifikatsioon Versioon jaan lk Dok IVXV-SVR-1.4.0

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

StandardBooks_versiooni_uuendusWin

FIDE reitingumäärus 1. juuli 2014 Kuremaa, Marek Kolk

1 Keskkonnamõju analüüs Koostajad: Koostamise aeg: metsaparandusspetsialist Jüri Koort algus: bioloogilise mitmekesisuse spetsialist Toomas

lvk04lah.dvi

Kerala State Haj Committee HAJ 2014 Flight Manifest FLIGHT NO. SV-5731 DATE: 14/09/2014 TIME: 16:35 RETURN FLIGHT NO: SV-5764 DATE: Cov No

TUNNUSTATUD TURVALAHENDUS Esitaja: G4S Eesti AS, Alarmtec AS Automaatse numbrituvastussüsteemi paigaldamine keelatud piirikaubanduse vastu võitlemisek

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

untitled

AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeri

SAF 6.0

TARTU ÜLIKOOL Arvutiteaduse instituut Informaatika õppekava Mirjam Iher Nõrgima eeltingimuse staatiline analüüs pinukeeltele Bakalaureusetöö (9 EAP) J

Tehniline andmeleht Sadulventiilid (PN 16) VRG 2 2-tee ventiil, väliskeermega VRG 3 3-tee ventiil, väliskeermega Kirjeldus Ventiilid on kasutatavad ko

4. KIRURGIA Üliõpilase andmed. Need väljad täidab üliõpilane Praktikatsükli sooritamise aeg Kirurgia praktikatsükkel Ees- ja perekonnanimi Matriklinum

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Microsoft PowerPoint - Loeng2www.ppt [Compatibility Mode]

Monitooring

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

REQUEST FOR AN ASSIGNMENT OF LEI (fond) LEI KOODI MÄÄRAMISE TAOTLUS (fond) 1. FUND DATA / FONDI ANDMED: Legal Name / Ametlik nimi: Other Fund Names /

VRG 2, VRG 3

Microsoft PowerPoint - loeng.ppt

Matemaatilised meetodid loodusteadustes. I Kontrolltöö I järeltöö I variant 1. On antud neli vektorit: a = (2; 1; 0), b = ( 2; 1; 2), c = (1; 0; 2), d

Microsoft Word - EVS_ISO_6743_13;2012_et_en

PowerPoint Presentation

Keskkonnamõju analüüs 1 PaasverePÜ-23 Koostajad Koostamise aeg metsaparandusspetsialist Madi Nõmm bioloogilise mitmekesisuse spetsialist To

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

GSMG UK.indd

1 Keskkonnamõju analüüs Koostajad: Koostamise aeg: metsaparandusspetsialist Jüri Koort algus: bioloogilise mitmekesisuse spetsialist Toomas

Kommunikatsiooniteenuste arendus (IRT0080) loeng 8/2014 Võrkude haldus Avo 1

Tartu Ülikool

Relatsiooniline andmebaaside teooria II. 6. Loeng

Väljavõte:

Objektorienteeritud programmeerimine Erindid Marina Lepp

Näide import java.io.file; import java.util.scanner; public class Loeng11{ public static void main(string[] args) { File file = new File("andmed.txt"); Scanner sc = new Scanner(file); Information: java: Errors occured while compiling module 'Loeng11' Error:(8, 22) java: unreported exception java.io.filenotfoundexception; must be caught or declared to be thrown 2

Kompileerub, aga tööle ei hakka public class ErindiTest { public static void main(string[] args) { int[] arvud = {3, 7, 8; System.out.println(arvud[3]); Exception in thread "main" java.lang.arrayindexoutofboundsexception: Index 3 out of bounds for length 3 at ErindiTest.main(ErindiTest.java:4) 3

Kompileerub, aga tööle ei hakka public class ErindiTest { public static void main(string[] args) { System.out.println(1/0); Exception in thread "main" java.lang.arithmeticexception: / by zero at ErindiTest.main(ErindiTest.java:3) 4

Faili ei eksisteeri Eriolukorrad Faili ei saa kirjutada/lugeda Nulliga jagamine Järjendist vale indeksiga elemendi küsimine Ja veel palju teisi 5

Milleks? Loeme andmed failist sisse Aga kui faili polegi? Eriolukord nõuab teistsugust lähenemist Tava- ja eriolukorra kood eraldatud 6

Eriolukorrad Javas Tõrked (Throwable) vead (Error) erindid (Exception) mittekontrollitavad (RuntimeException) kontrollitavad (kompilaator leiab) https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/throwable.html https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/exception.html 7 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/runtimeexception.html

sün. erandolukord Erind (ingl exception) Programmi töö käigus tekkida võiv selline eriolukord, mis ei pruugi tingimata olla saatuslik programmi edasisele täitmisele Tüüpilisematele juhtudele on olemas vastavad süsteemsed erindiklassid Erindi tekkimisel luuakse vastava erindiklassi isend, mis on abiks eriolukorda analüüsivas programmiosas J. Kiho Väike Java leksikon 8

Throwable Error Exception LinkageError VirtualMachineError IOException MingiErind RuntimeException FileNotFoundException ArithmeticException NullPointerException IndexOutOfBoundsException mittekontrollitavad (RuntimeException) kontrollitavad (kompilaator leiab) 9

Kontrollitavate ja mittekontrollitavate Kontrollitav erind erindite erinevused programm ei kompileeru, kui erindiga ei ole tegeletud throws Exception try-catch Mittekontrollitav erind programm kompileerub, aga tööle ei hakka 10

Eriolukorra lahendamine Lahendame probleemi kohapeal (erindi püüdmine) try {/* KOOD */ catch (Exception e){/* LAHENDUS */ mõistlik siis, kui tõesti suudame lahendada Suuname erindi edasi throws Exception{/*...*/ võimalikult täpse erindiklassiga 11

Erindi püüdmata jätmine Kui erindit kinni ei püüa, siis püüab Java käituskeskkond ise 12

Katsendidirektiiv try { /* Veaohtlik kood */ catch(erind1 e) { /* Erind1 püünis */ catch(erind2 e) { /* Erind2 püünis */ finally { /* Epiloog */ 13

Katsendidirektiiv try { /* Veaohtlik kood */ catch(erind1 Erind2 e) { /* Erind1 püünis ja */ /* Erind2 püünis koos */ finally { /* Epiloog */ 14

Katsendidirektiiv try { /* Põhiplokk */ /* Veaohtlik kood */ catch(erind1 Erind2 e) { /* Erind1 püünis ja */ /* Erind2 püünis koos */ Mitme erindi puhul ebavajalikud erindid keelatud catch(erind3 e) { Ebavajalikud /* Erind3 püünis */ püünised keelatud finally { /* Epiloog */ Epiloog sooritatakse alati, kui JVM ja vastav lõim veel töötavad 15

Katsendidirektiiv (voo sulgemisega) try( Voog voog = new Voog(); Voog voog2 = new Voog() ) { /* Kood */ 16

Katsendidirektiiv (voo sulgemisega) try(voog voog = new Voog()) { /* Veaohtlik kood */ catch(erind1 Erind2 e) { /* Erind1 püünis ja */ /* Erind2 püünis koos */ finally { /* Epiloog */ 17

Katsendidirektiivid Tavaline katsendidirektiiv Peab olema kas finally või vähemalt 1 catch try catch try catch catch try catch finally try catch catch finally try finally Voo sulgemisega katsendidirektiiv Ei pea olema ei finally ega catch 18

Eriolukorras Pooleli jäänud töö käigus võib-olla muudeti muutujate väärtuseid avati vooge Erindi püüdmisel tuleb taastada normaalne seisund avatud vood sulgeda 19

Püünis (catch) Püüab kas ühe või mitu erindit Mitme erindi puhul ebavajalikud erindid keelatud Mitu püünist ühes katsendidirektiivis Ebavajalikud püünised keelatud 20

1. Indeks 2. Aritmeetika 3. Indeks Aritmeetika 4. Aritmeetika Indeks 5. Midagi muud Mis ilmub ekraanile? RuntimeException ArithmeticException try { ArrayIndexOutOfBoundsException System.out.println(1/0); int[] arvud = {3, 7, 8; System.out.println(arvud[3]); catch (ArrayIndexOutOfBoundsException e) { System.out.println("Indeks"); catch (ArithmeticException e) { System.out.println("Aritmeetika"); 21

Mis ilmub ekraanile? RuntimeException ArithmeticException try { System.out.println(1/0); ArrayIndexOutOfBoundsException int[] arvud = {3, 7, 8; System.out.println(arvud[3]); catch (RuntimeException e) { System.out.println("Käitusaegne"); catch (ArithmeticException e) { System.out.println("Aritmeetika"); 1. Käitusaegne 2. Aritmeetika 3. Käitusaegne Aritmeetika 4. Aritmeetika Käitusaegne 5. Midagi muud exception java.lang.arithmeticexception has already been caught 22

1. Käitusaegne 2. Aritmeetika 3. Käitusaegne Aritmeetika 4. Aritmeetika Käitusaegne 5. Midagi muud Mis ilmub ekraanile? RuntimeException ArithmeticException try { int[] arvud = {3, 7, 8; ArrayIndexOutOfBoundsException System.out.println(arvud[3]); System.out.println(1/0); catch (ArithmeticException e) { System.out.println("Aritmeetika"); catch (RuntimeException e) { System.out.println("Käitusaegne"); 23

Kas kompileerub? try { System.out.println(1 / 0); catch (IndexOutOfBoundsException e){ System.out.println(e); 1. Jah 2. Ei 24

Kas kompileerub? try { System.out.println(1 / 0); catch (FileNotFoundException e){ System.out.println(e); 1. Jah 2. Ei exception java.io.filenotfoundexception is never thrown in body of corresponding try statement 25

Kas kompileerub? public void meetod() throws FileNotFoundException{ System.out.println(1/0); 1. Jah 2. Ei 26

Mis ilmub ekraanile? try{ System.out.print("Tere" + " " + 1 / 0); catch(arithmeticexception e){ System.out.print("Maailm"); 1. Tere 2. Maailm 3. TereMaailm 4. Tere Maailm 5. Midagi muud 27

Epiloog (finally) Täidetakse alati (kui katsendidirektiivini jõuti ning kui JVM ja vastav lõim veel töötavad) Isegi, kui tekkis erind, mida kinni ei püütud Isegi, kui jõuti return-lauseni 28

Mis ilmub ekraanile, kui seda meetodit rakendada? public static void meetod1() { try { System.out.println("Põhiplokis!"); return; finally { System.out.println("Epiloogis!"); 1. Põhiplokis! 2. Põhiplokis! Epiloogis! 3. Epiloogis! 4. Midagi muud 29

Milline väärtus tagastatakse? public static int meetod2() { try { return 1; finally { return 2; 1. 1 2. 2 3. Midagi muud 30

Mis ilmub ekraanile, kui seda meetodit rakendada? public static void meetod3() { try { System.out.println("Põhiplokis!"); System.exit(1); finally { System.out.println("Epiloogis!"); System.exit(2); public static void exit (int status) Terminates the currently running Java Virtual Machine. The argument serves as a status code. 1. Põhiplokis! 2. Põhiplokis! Epiloogis! 3. Epiloogis! 4. Midagi muud 31

Mida erindi kohta teada saame? Kui kuskil programmis ei püüta, siis Java käituskeskkond ikka püüab ja rakendab isendimeetodit printstacktrace() Veel meetodeid getmessage() getlocalizedmessage() tostring() https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/throwable.html 32

Katsendidirektiivid (voo sulgemisega) Tegelikult mitte tingimata voo sulgemine, vaid klassi, mis realiseerib liidest AutoCloseable Kutsutakse välja liidese AutoCloseable meetod close() https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/autocloseable.html 33

// Teeme ise suletava objekti class Suletav implements AutoCloseable { Suletav(){ System.out.println("Konstruktori sees"); @Override public void close() { System.out.println("Sulgesin ennast!"); try(suletav suletav = new Suletav()){ System.out.println("Try sees"); Konstruktori sees Try sees Sulgesin ennast! 34

Suur tänu vaatamast ja kohtumiseni! 35