Objektorienteeritud programmeerimine. 25. veebruar, 3. loeng Marina Lepp

Seotud dokumendid
PowerPointi esitlus

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

loeng2

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

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

Pealkiri

PowerPointi esitlus

PHP

(loeng3-ohtlikud_koodiloigud)

Funktsionaalne Programmeerimine

Pealkiri

SQL

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

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

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Algoritmid ja andmestruktuurid

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

1. AKE Ajalise keerukuse empiiriline hindamine

Andmeturve

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilit

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

IFI6083_Algoritmid_ja_andmestruktuurid_IF_3

Funktsionaalne Programmeerimine

Esitatud a. 1 PROJEKTEERIMISTINGIMUSTE TAOTLUS DETAILPLANEERINGU OLEMASOLUL 1. Füüsilisest isikust taotluse esitaja 2 eesnimi perekonnanim

Andmed arvuti mälus Bitid ja baidid

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

SQL

Microsoft Word - requirements.doc

Microsoft Word - Referaat.docx

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

Peafail3_2.dvi

PowerPointi esitlus

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

Rahulolu_uuring_2010.pdf

MTAT Operatsioonisüsteemid - Turvalisus

lvk04lah.dvi

X Window System tuntud kui: X11 X X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesugus

Praks 1

Word Pro - diskmatTUND.lwp

Microsoft PowerPoint - loeng.ppt

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

Praks 1

MTAT Operatsioonisüsteemid - Turvalisus

raamat5_2013.pdf

Peugeot Boxer eriversioonid Hinnad ja varustused Diisel Mootor ja kere Käigukast Võimsus (kw/hj) Keskmine kütusekulu (l/100km) VARUSTUSTASE Varustusta

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

Microsoft Word - EHR.docx

VL1_praks6_2010k

DE_loeng5

Eesti keele võõrkeelena olümpiaadi lõppvoor 2013 Kõik ülesanded on siin lühendatult. Valikus on küsimusi mõlema vanuserühma töödest. Ülesanne 1. Kirju

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

180104komisjon-ekilex.key

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

ITI Loogika arvutiteaduses

PowerPoint-præsentation

Microsoft Word - Vorm_TSD_Lisa_1_juhend_2015

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

loeng7.key

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019

Microsoft Word - 56ylesanded1415_lõppvoor

Relatsiooniline andmebaaside teooria II. 6. Loeng

Pealkiri / Headline

Pythoni Turtle moodul ja Scratchi värvilisem pool Plaan Isikukoodi kontrollnumbri leidmine vaatame üle lahenduse kontrollnumbri leimiseks. Pythoni joo

Praks 1

Kuidas hoida tervist töökohal?

E-arvete juhend

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

Elisa Ring Elisa Ringi mobiilirakendus Versioon

Page 1 of 6 Otsid teistmoodi eluviisi? Kommuun - uued energiasäästlikud ridaelamud Tabasalu parkmetsas! Kuigi Tallinn ja Harjumaa on uusarenduste ülek

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

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

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

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

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

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

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Nimeteenuse näited DNS DNS NIS NIS+ LDAP JNDI Hierarhiline Interneti nimede süsteem Põhilised päringud: Arvuti nime järg

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

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

Microsoft Word - RM_ _17lisa2.rtf

Materjalid koostas ja kursuse viib läbi Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm 2.1 Muutujad SISSEJUHATUS Programmi

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

Microsoft PowerPoint - Optsioonid(dets08) [Read-Only]

Word Pro - digiTUNDkaug.lwp

Norrison Ametikudumid, Professional knitwear.cdr

Operatsioonisüsteemide ehitus

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

Portfoolio Edgar Volkov Ehtekunsti eriala 2015

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

Operatsioonisüsteemi ülesanded

IDA-TALLINNA KESKHAIGLA Statsionaarsete patsientide rahulolu uuring

Microsoft Word - SDEMuutused.doc

Advanced AspectJ ja AspectJ 5.0 Aleksei Bogdanov 05. aprill 2006

Väljavõte:

Objektorienteeritud programmeerimine 25. veebruar, 3. loeng Marina Lepp 1

Möödunud nädalal Loeng Tingimuslaused. Tsüklid. OOP algus Lisapraktikum (konsultatsioon) Praktikum Java põhikonstruktsioonid Delta karjääripäev Eesti Vabariigi aastapäev 2

Umbes mitu tundi tegelesite eelmisel nädalal selle ainega (loeng+praktikum+iseseisvalt)? 1. 0-2 tundi 2. 2-4 tundi 3. 4-6 tundi 4. 6-8 tundi 5. 8-10 tundi 6. 10-12 tundi 7. 12-14 tundi 8. üle 14 tunni 3

Kuivõrd olete selle ainega graafikus? 1. Isegi ees 2. Täiesti graafikus 3. Veidi maas, aga saan ise hakkama 4. Kõvasti maas, vajan abi 5. Ei oska öelda 4

Täna Isendid, klassid, konstruktorid Sõned String, StringBuilder Mähisklassid char, Character Vastlapäev 5

int i = 1, j = 2, k = 3; if (i > j) if (i > k) System.out.println("A"); else System.out.println("B"); int i = 1, j = 2, k = 3; if (i > j) { if (i > k) { System.out.println("A"); else { System.out.println("B"); 6

int i = 1, j = 2, k = 3; if (i > j) if (i > k) System.out.println("A"); else System.out.println("B"); int i = 1, j = 2, k = 3; if (i > j) { if (i > k) System.out.println("A"); else System.out.println("B"); 7

public class Kast { String nimi; double pikkus; double laius; double kõrgus; Klass Isendiväljad (Isendimuutujad) Isendimeetodid double ruumala(){ return pikkus*laius*kõrgus; void tervitus(){ System.out.println("Tere"); 8

Milleks on vajalikud klassid ja kus neid päriselt tarvis läheb? Klass defineerib ära objekti abstraktsed omadused Klass on nagu šabloon, mis kirjeldab millegi olemust Kast kast1 = new Kast("Paul",2,3,4); Kast kast2 = new Kast("Ülo",3,5,3.4); String kast1nimi = "Paul"; double kast1pikkus = 2; double kast1laius = 3; double kast1kõrgus = 4; String kast2nimi = "Ülo"; double kast2pikkus = 3; double kast2laius = 5; double kast2kõrgus = 3.4; 9

Konstruktor (ingl. constructor) Konstruktoril väga selge rakendus uue isendi loomisel, new klassi kehas kirjeldatud eriline protseduur, mida rakendatakse isendiloome käigus (nt. vastloodud isendi väljade algväärtustamiseks) J. Kiho Väike Java leksikon Nimi langeb kokku klassi nimega Sarnane meetodiga, kuid ei oma tagastustüüpi Võimalik üledefineerimine Kui klassis ei ole konstruktorit defineeritud, siis lisatakse vaikekonstruktor (parameetriteta) See, millist konstruktori versiooni kasutama hakatakse, sõltub argumentide arvust ja/või tüübist 10

Konstruktor public class Kast { String nimi; double pikkus; double laius; double kõrgus; Isendiväljad (Isendimuutujad) public Kast(String nimi, double pikkus, double laius, double kõrgus) { this.nimi = nimi; this.pikkus = pikkus; this.laius = laius; this.kõrgus = kõrgus; Konstruktor Meetodid 11

Mitu konstruktorit public Kast(String nimi, double pikkus, double laius, double kõrgus) { this.nimi = nimi; this.pikkus = pikkus; this.laius = laius; this.kõrgus = kõrgus; public Kast(String antudnimi) { nimi = antudnimi; pikkus = 1; laius = 1; kõrgus = 1; public Kast(){ this("", 0.0, 0.0, 0.0); 12

Võtmesõna this Viitamine objektile endale isendiväljadele viitamisel, kui parameetrite nimed langevad kokku isendiväljade nimedega ühe konstruktori sees teise konstruktori väljakutsumisel 13

Mitu konstruktorit public Kast(String nimi, double pikkus, double laius, double kõrgus) { this.nimi = nimi; this.pikkus = pikkus; this.laius = laius; this.kõrgus = kõrgus; public Kast(String antudnimi) { nimi = antudnimi; pikkus = 1; laius = 1; Kast kast2 = new Kast("Paul", 4.8, 2, 3); kõrgus = Kast 1; kast3 = new Kast("Ülo"); Kast kast5 = new Kast(); public Kast(){ this("", 0.0, 0.0, 0.0); 14

Mõisteid Üledefineerimine (ingl. overloading) olukord, kus klassi kuulub mitu sama nimega, kuid erineva signatuuriga meetodit (ka päriluse teel saadut) või mitu konstruktorit; väljakutse puhul rakendatakse neist väljakutses antud argumentide poolest sobivat. Signatuur (ingl. signature) meetodi või konstruktori iseloomustus, mis koosneb (meetodi või konstruktori) nimest ning formaalsete parameetrite tüüpide loetelust. J. Kiho Väike Java leksikon 15

Mis väljastatakse ekraanile? public class Paar { int i; double d; Paar(int i, double d) { this.i = i * 10; this.d = d; Paar p1 = new Paar(2, 4.1); System.out.println(p1.i); 1. 20 2. 20.0 3. midagi muud 4. veateade 16

Mis väljastatakse ekraanile? public class Paar { int i; double d; Paar(int i, double d) { this.i = i * 10; this.d = d; Paar p1 = new Paar(2.0, 4.1); System.out.println(p1.i); 1. 20 2. 20.0 3. midagi muud 4. veateade 17

Mis väljastatakse ekraanile? public class Paar { int i; double d; Paar(int i, double d) { this.i = i * 10; this.d = d; Paar p1 = new Paar(2, 4); System.out.println(p1.i); 1. 20 2. 20.0 3. midagi muud 4. veateade 18

Mis väljastatakse ekraanile? public class Paar { int i; double d; Paar(int i, double d) { this.i = i * 10; this.d = d; Paar(double d, int i) { this.i = i; this.d = d * 10; 1. 20 2. 20.0 3. midagi muud 4. veateade Paar p1 = new Paar(2.0, 4); System.out.println(p1.d); 19

Mis väljastatakse ekraanile? public class Paar { int i; double d; Paar(int i, double d) { this.i = i * 10; this.d = d; Paar(double d, int i) { this.i = i; this.d = d * 10; 1. 20 2. 20.0 3. midagi muud 4. veateade Paar p1 = new Paar(2, 4); System.out.println(p1.d); 20

Piiritleja (ingl. modifier) kasutusliiki täpsustav kirjelduse alguses paiknev võtmesõna järjestikused eraldatakse tühiku(te)ga omavaheline järjestus ei oma tähtsust Näiteid public, protected, private static final abstract Juurdepääsetavus Klassi (mitte isendi) Abstraktne Ei saa hiljem muuta 21

Juurdepääsetavus Enamik objektorienteeritud keeli toetab informatsiooni varjamist Väljad ja meetodid on jagatud avalikeks ja privaatseteks Privaatsed väljad ja meetodid on nähtavad (kättesaadavad) ainult klassi sees; väljastpoolt on nähtavad ainult avalikud väljad ja meetodid Tavaline jaotus: väljad privaatsed ja meetodid avalikud Soodustab suurte programmide hallatavust, kuna objekti "kasutaja" ei pea teadma midagi selle sisemistest realisatsioonidetailidest 22

Juurdepääsetavuse piiritlejad public, protected, private, juurdepääsu piiritlejat pole Kui juurdepääsu piiritlejat ei kasutata, siis klassid, meetodid ja andmeväljad on kättesaadavad sama paketi kõikides klassides 23

Paketid (ingl. package) Kasutatakse klasside rühmitamiseks Iga klass kuulub paketti Nimekonfliktide vältimiseks java.util.list java.awt.list Võimalik hierarhiline struktuur Teistest pakettidest import java.util.scanner; import java.util.*; Alates Java 9 iga pakett kuulub moodulisse 24

Samas paketis package p1; public class K1 { public int x; int y; private int z; public void m1(){ void m2(){ private void m3(){ package p1; public class K2 { public static void main(string[] args) { K1 k = new K1(); int a = k.x; int b = k.y; //int c = k.z; k.m1(); k.m2(); //k.m3(); 25

Erinevates pakettides package p1; public class K1 { public int x; int y; private int z; public void m1(){ void m2(){ private void m3(){ package p2; import p1.*; public class K3 { public static void main(string[] args) { K1 k = new K1(); int a = k.x; //int b = k.y; //int c = k.z; k.m1(); //k.m2(); //k.m3(); 26

Get- ja set-meetodid private double pikkus; public double getpikkus() { return pikkus; public void setpikkus(double pikkus) { this.pikkus = pikkus; 27

Näide isendiväljast, mida ei saa pärast isendi loomist muuta public class Isik { private long isikukood; public Isik(long isikukood) { this.isikukood = isikukood; public long getisikukood() { return isikukood; Aitaks meetod setisikukood 28

Kui juurdepääsetavust määravat piiritlejat pole, siis meetod on kättesaadav 1. ainult samas klassis 2. ainult samas paketis 3. kõikjal 29

Kas peameetodi päis võib olla static public void main(string[] args) 1. jah 2. ei 30

Kas peameetodi päis võib olla public static void main(string[] a) 1. jah 2. ei 31

Meetod tostring tagastab sõne, mis peaks arusaadaval viisil esitama olulist informatsiooni objekti kohta ilma meetodita tostring Kast@50cbc42f meetodiga tostring Mina olen kast Paul: pikkus=2.0, laius=3.0, kõrgus=4.0 public String tostring() { return "Mina olen kast " + nimi + ": pikkus=" + pikkus + ", laius=" + laius + ", kõrgus=" + kõrgus ; 32

Isend argumendina Klassis Kast void tervitus(kast teinekast) { System.out.println("Tere, " + teinekast.nimi); Klassis KastTest kast1.tervitus(kast2); 33

Klassi- (staatiline) ja isendimeetod static on või pole Klassimeetod static double aritkeskmine(double arv1, double arv2) väljakutse on võimalik kõikjalt, kus vastav klass on nähtav (isendeid ei pea olema olemas) peameetod public static void main (String[] args) meetodid klassist java.lang.math Isendimeetod void tervitus() väljakutse on võimalik ainult mingi olemasoleva isendi kaudu meetodi nimele lisandub isendi osuti., klassisisesel kasutamisel on selleks vaikimisi this. kast1.tervitus() 34

Klassi- (staatiline) ja isendiväli static on või pole Klassiväli static int a kasutamine on võimalik kõikjalt, kus vastav klass on nähtav ei ole isendi osaks klassist java.lang.math static double E, kasutamine Math.E Isendiväli int b kuulub isendi struktuuri ja kasutamine on võimalik ainult vastava isendi kaudu välja nimele lisandub isendi osuti., klassisisesel kasutamisel on selleks vaikimisi this. kast2.pikkus 35

Mõlemaid Ühes klassis võib olla nii klassi- kui isendivälju ja -meetodeid 36

Mis väljastatakse ekraanile? public class Paar { static int kordaja; int i; double d; Paar(int i, double d) { this.i = i * kordaja; this.d = d; Paar p = new Paar(2, 4.1); System.out.println(p.i); 1. 2 2. 0 3. midagi muud 4. veateade 37

Vaikeväärtused Väljadel on vaikeväärtus Lokaalsetel muutujatel vaikeväärtust pole Data Type Default Value (for fields) byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char String (or any object) boolean '\u0000' null false http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

Mis väljastatakse ekraanile? public class Paar { static int kordaja; int i; double d; Paar(int i, double d) { this.i = i * kordaja; this.d = d; 1. 20 2. 0 3. midagi muud 4. veateade Paar.kordaja = 10; Paar p = new Paar(2, 4.1); System.out.println(p.i); 39

Mida väljastab järgmine programmilõik? class Palk { static int tulumaks; static int brutopalk; int netopalk; String töötaja; public Palk(int brutopalk, String töötaja) { this.brutopalk = brutopalk; this.töötaja = töötaja; this.netopalk = brutopalk* (100-tulumaks)/100; 1. 1000 2. 20 3. 0 4. 800 5. midagi muud 6. veateate Palk.tulumaks = 20; Palk p1 = new Palk(1000,"Heli Kopter"); System.out.println(p1.tulumaks); 40

Mida väljastab järgmine programmilõik? class Palk { static int tulumaks; static int brutopalk; int netopalk; String töötaja; public Palk(int brutopalk, String töötaja) { this.brutopalk = brutopalk; this.töötaja = töötaja; this.netopalk = brutopalk* (100-tulumaks)/100; 1. 1000 2. 500 3. midagi muud 4. veateate Palk.tulumaks = 20; Palk t1 = new Palk(1000, "Heli Kopter"); Palk t2 = new Palk(500, "Ülle Õpilane"); System.out.println(t1.brutopalk); 41

Mida väljastab järgmine programmilõik? class Palk { static int tulumaks; int brutopalk; int netopalk; String töötaja; public Palk(int brutopalk, String töötaja) { this.brutopalk = brutopalk; this.töötaja = töötaja; this.netopalk = brutopalk* (100-tulumaks)/100; 1. 1000 2. 500 3. midagi muud 4. veateate Palk.tulumaks = 20; Palk t1 = new Palk(1000, "Heli Kopter"); Palk t2 = new Palk(500, "Ülle Õpilane"); System.out.println(t1.brutopalk); 42

Milline on klassis õige järjekord? 1. isendiväljad, klassiväljad, konstruktorid, meetodid 2. klassiväljad, isendiväljad, konstruktorid, meetodid 3. klassiväljad, konstruktorid, meetodid, isendiväljad 4. isendiväljad, klassiväljad, meetodid, konstruktorid 43

Sõned Sõne pole algtüüpi Iga sõne on isend Javas põhineb sõnetöötlus sisseehitatud klasside kasutamisel java.lang.string java.lang.stringbuffer java.lang.stringbuilder 44

new Loomine, võrdlemine hulk konstruktoreid on eriline võrdlemine char[] tähed = {'a','b','c'; String sõne1 = new String(tähed); String sõne2 = "abc"; System.out.println(sõne1 == sõne2); System.out.println(sõne1.equals(sõne2)); Puhvri sisu võrdlemine Objekti viida võrdlemine Sõneliteraal false true 45

Literaal konkreetse väärtuse üleskirjutus programmis literaale ei tohi poolitada literaalina esitatud väärtuse tüüp on määratud kirjakujuga näiteks 0, -15, 2000 int-tüüpi kümnendsüsteemis 0b0, -0b1111, 0b0_011_111_010_000 int-tüüpi kahendsüsteemis (alates Java 1.7) 00, -017, 03720 int-tüüpi kaheksandsüsteemis 0x0, -0Xf, 0xF int-tüüpi kuueteistkümnendsüsteemis 0L, -017l, -0Xf1, 0x3E8l long-tüüpi (soovitavalt L, mitte l) 0., -15., 60.301, 20000e-1 double-tüüpi 0.D, -15.d, 20e2d double-tüüpi 0.f, 15.F, 60.9f, 20000e-1F float-tüüpi 'a', '%', '\n', '\\', '\u03a8', '\177' char-tüüpi "", "abc", "1. \n 2." String-tüüpi true, false boolean-tüüpi (ainsad) null suvalist viit-tüüpi (tühiviit) 46

Sõne char[] tähed = {'a','b','c'; char[] tähed2 = {'a','b','c'; String sõne1 = new String(tähed); String sõne2 = new String(tähed2); String sõne3 = "abc"; String sõne4 = "abc"; System.out.println(sõne1 == sõne2); System.out.println(sõne1 == sõne3); System.out.println(sõne3 == sõne4); false false true 47

Mida väljastab järgmine programmilõik? 1. true 2. false 3. midagi muud 4. mitte midagi 5. veateate String s1 = "siil"; String s2 = "Siil"; boolean k = s1.equals(s2); System.out.println(k); 48

Mida väljastab järgmine programmilõik? String s1 = "siil"; String s2 = "Siil"; if (s1 == s2) System.out.println("võrdsed"); else System.out.println("ebavõrdsed"); 1. võrdsed 2. ebavõrdsed 3. midagi muud 4. mitte midagi 5. veateate 49

Vaatame APIt charat compareto equals equalsignorecase indexof length replace tolowercase touppercase tostring 50

Leksikograafiline võrdlemine compareto String s1 = "Tartu"; String s2 = "Tallinn"; int j = s1.compareto(s2); System.out.println(j); 6 String s1 = "Tartu"; String s2 = "Tallinn"; int j = s2.compareto(s1); System.out.println(j); -6 51

Mida väljastab järgmine programmilõik? String s1 = "jogurt"; char char1 = s1.replace("g", "k").charat(2); System.out.println(char1); 1. k 2. g 3. u 4. midagi muud 5. mitte midagi 6. veateate 52

Mida väljastab järgmine programmilõik? 1. A 2. B 3. mitte midagi 4. veateate String s1 = "Siilionu"; String s2 = s1.touppercase(); if (s2.charat(2) == s1.charat(2)) System.out.println("A"); else if (s2.charat(1) == "i") System.out.println("B"); 53

+ sõnede korral, sõneksteisendus + konkatenatsioon "Tere" + " " + "hommikust" Sageli esitatakse erinevaid suurusi sõnedena automaatselt System.out.println("1 + 2 = " + 1 + 2); Isik a = new Isik("Juhan Juurikas", 1.99); System.out.println(a); 54

Sõneksteisendus algtüübi korral klassimeetodid valueof (klassist String) String.valueOf(89) viittüübi korral isendimeetod tostring() klassis, mille isend ta ise on ülemklassis klassis Object paiskkood 16-süsteemis a.tostring() 55

String <-> Integer (int) Integer intobjekt2 = Integer.valueOf("17"); int arvint4 = Integer.parseInt("17"); String s1 = Integer.toString(117); String s2 = String.valueOf(15); String s3 = ""+15; String s4 = intobjekt2.tostring();

Klassi String isendit ei saa muuta Aga String a = "abcd"; a = "defg"; Tegelikult luuakse uus isend 57

StringBuilder StringBuilder on paindlikum append charat substring replace delete indexof insert capacity length ainult isendimeetodid 58

Loengu tempo oli 1. liiga kiire 2. paras 3. liiga aeglane 59

Materjal tundus 1. liiga lihtne 2. parajalt jõukohane 3. liiga keeruline 60

Suur tänu osalemast ja kohtumiseni! 61