Objects First With Java A Practical Introduction Using BlueJ. 4. Grouping objects. Collections och iterators

Relevanta dokument
DD1310/DD1314/DA3009 PROGRAMMERINGSTEKNIK

DIGITALTEKNIK. Laboration D171. Grindar och vippor

tentaplugg.nu av studenter för studenter

bättre säljprognoser med hjälp av matematiska prognosmodeller!

9. Diskreta fouriertransformen (DFT)

Ordinära differentialekvationer,

Informationsteknologi

tentaplugg.nu av studenter för studenter

Om exponentialfunktioner och logaritmer

Laboration A Objektsamlingar

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Innehåll. 5. More sophisticated behavior. Javas klassbibliotek. Arbete med klassbibliotek. A Technical Support System. Huvudloopens struktur

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

FAQ. frequently asked questions

Föreläsning 19: Fria svängningar I

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 3: Booleans, if, switch

OOP Objekt-orienterad programmering

Objektsamlingar i Java

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

F4. programmeringsteknik och Matlab

FÖRDJUPNINGS-PM. Nr Räntekostnaders bidrag till KPI-inflationen. Av Marcus Widén

Klassdeklaration. Metoddeklaration. Parameteröverföring

Introduktion till Datalogi DD1339. Föreläsning 5 13 okt 2014

Tentamen Datastrukturer, DAT037 (DAT036)

Föreläsning 8: Exempel och problemlösning

Datastrukturer. föreläsning 3. Stacks 1

2 Laboration 2. Positionsmätning

Tentamen på grundkursen EC1201: Makroteori med tillämpningar, 15 högskolepoäng, lördagen den 14 februari 2009 kl 9-14.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Minnesverktyg. Sakletare Tankekartor Fickminne/MP3

1.1 LAGEN OM FÖRSÄKRINGSFÖRMEDLING FINANSINSPEKTIONENS ROLL OCH TILLSYN GOD FÖRSÄKRINGSFÖRMEDLINGS-SED ETIK OCH MORAL 10

3D vattenanimering Joakim Julin Department of Computer Science Åbo Akademi University, FIN Åbo, Finland

JAVAUTVECKLING LEKTION 4

Föreläsning 2. Länkad lista och iterator

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Föreläsning 2. Länkad lista och iterator

DAT043 - föreläsning 8

Installation av fjärrplatser med TCP/IP

Hur simuleras Differential-Algebraiska Ekvationer?

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Den som bara har en hammare tror att alla problem är spikar

Objektorienterad programmering i Java

Arrayer. results

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Studieverktyg. Tankekartor Fickminne/MP3

Tentamen OOP

TDDC77 Objektorienterad Programmering

5B1134 MATEMATIK OCH MODELLER FEMTE FÖRELÄSNINGEN INTEGRALER

Strategiska möjligheter för skogssektorn i Ryssland med fokus på ekonomisk optimering, energi och uthållighet

BASiQ. BASiQ. Tryckoberoende elektronisk flödesregulator

Kylvätska, tappa ur och fylla på

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

OOP Objekt-orienterad programmering

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Introduk+on +ll programmering i JavaScript

Tentamen. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

Programmering för språkteknologer II, HT2011. Rum

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Om antal anpassningsbara parametrar i Murry Salbys ekvation

Lösningar för tenta 3 DAT043,

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Livförsäkringsmatematik II

Programvara. Dimmer KNX: 1, 3 och 4 utgångar Elektriska/mekaniska egenskaper: se produktens användarhandbok. TP-anordning Radioanordning

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

Föreläsning 3: Fler grafalgoritmer. Kortaste vägar mellan alla noder

Detta kan ni själva ta fram i word: Skriva ut en lista över kortkommandon, gör följande

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Algoritmer och datastrukturer, föreläsning 11

Länkade strukturer. (del 2)

Laboration 1 - Grunderna för OOP i Java

PROGRAMMERING-Java Omtentamina

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Betalningsbalansen. Andra kvartalet 2012

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Övriga verktyg. Internettjänster Matematik

Lektion 3 Projektplanering (PP) Fast position Projektplanering. Uppgift PP1.1. Uppgift PP1.2. Uppgift PP2.3. Nivå 1. Nivå 2

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Java, klasser, objekt (Skansholm: Kapitel 2)

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Metoder (funktioner) Murach s: kap Winstrand Development

Iteration while-satsen

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Tentamen ID1004 Objektorienterad programmering May 29, 2012

1.1 LAGEN OM FÖRSÄKRINGSFÖRMEDLING FINANSINSPEKTIONENS ROLL OCH TILLSYN GOD FÖRSÄKRINGSFÖRMEDLINGS-SED ETIK OCH MORAL 10

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Transkript:

Objecs Firs Wih Java A Pracical Inroducion Using BlueJ 4. Grouping objecs Collecions och ieraors

Innehåll Collecions Loopar Ieraorer Arrays Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 2

Krave a gruppera objek Många illämpningar innehåller samlingar av objek: Filoax biblioekskaaloger Sudieadminisraiva sysem Anale elemen som lagras varierar elemen läggs ill elemen as bor Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 3

En personlig aneckningsbok Noiser kan lagras Man kan ia på en individuell nois Ingen begränsning på anale noiser Man kan å vea anale lagrade noiser Uorska projeke noebook1 Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 4

Klassbiblioek Användbara klasser Vi behöver ine skriva all själva Java kallar sina biblioek ör packages. A gruppera objek är e åerkommande behov. Pakee java.uil innehåller klasser som hjälper ill med dea Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 5

Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 6

Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 7

Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 8

Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 9

Överlagrad meod Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 10

Dokumenaionen ör klassen Noebook /** * Sore a new noe ino he noebook. * @param noe The noe o be sored. */ public void sorenoe(sring noe) noes.add(noe); Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 11

Dokumenaionen ör klassen Noebook /** * Sore a new noe ino he noebook. * @param noe The noe o be sored. */ public void sorenoe(sring noe) noes.add(noe); Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 12

impor java.uil.arraylis; /** *... */ public class Noebook // Sorage or an arbirary number o noes. privae ArrayLis noes; /** * Perorm any iniializaion required or he * noebook. */ public Noebook() noes = new ArrayLis(); Ger illgång ill exak denna klass i dea pake Varje noebook skall äga e objek = en lisa av noiser Skapa objeke (om)... Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 13

Objekssrukuren Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 14

Lägg ill en redje nois Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 15

Egenskaper hos en ArrayLis Uökar sin kapacie om de behövs Har en priva räknare nås via meoden size() Objeken är ordnade ( mängd) Dealjerna kring hur dea skös är dolda. Spelar de någon roll? Hindrar de oss rån a använda den? Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 16

Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 17

Använda sin collecion public class Noebook privae ArrayLis noes;... public void sorenoe(sring noe) noes.add(noe); Lägg ill en nois public in numberonoes() reurn noes.size(); Reurnerar anale noiser (delegaion).... Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 18

Indexens numrering Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 19

Häma u objek ur collecion Är index gilig? public void shownoe(in noenumber) i(noenumber < 0) // This is no a valid noe number. else i(noenumber < numberonoes()) Sysem.ou.prinln(noes.ge(noeNumber)); else Häma och skriv u noisen // This is no a valid noe number. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 20

Numreringen kan påverkas av uag Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 21

Sammananing Godycklig anal objek kan lagras Klassbiblioek illhandahåller uesade klasser Javas klass biblioek kallas packages. Klassen ArrayLis inns i pakee java.uil Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 22

Sammananing Elemen kan läggas in och as bor. Varje elemen har e index. Värde på index kan ändras om elemen as bor eller läggs ill. I ArrayLis är de vikigase meoderna add, ge, remove och size. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 23

Ieraion Vanlig a vi vill upprepa vissa ågärder e godycklig anal gånger. T.ex. Skriva u alla noiserna i aneckningsboken. Hur många är dom? De lesa programmeringsspråk har saser ör upprepning (loopar). Java har re slag av loop-srukurer. Vi börjar med while-loopen. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 24

While-loopens pseudokod While-loopens allmänna orm while nyckelord Boolsk es while(loop condiion) loop body Saser som ska upprepas Pseudokod ör a skriva u alla noiser while(de inns noiser kvar a skriva u) //skriv u näsa nois Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 25

i Java /** * Lis all noes in he noebook. */ public void lisnoes() in index = 0; while(index < noes.size()) Sysem.ou.prinln(noes.ge(index)); index = index + 1; Öka index med 1 Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 26

Ierera över en samling java.uil.ieraor Reurnerar e objek av klassen Ieraor Ieraor i = mycollecion.ieraor(); while(i.hasnex()) Meod i klassen ArrayLis //anropa i.nex() ör a å näsa objek //hanera objeke Meoder i Ieraor public void lisnoes() Ieraor i = noes.ieraor(); while(i.hasnex()) Sysem.ou.prinln(i.nex()); Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 27

Projeke aucion Projeke aucion yerligare e exempel. Två nya saker: Värde null. Casing. Används här ör a se ill a resulae rån ge har rä yp när de sparas i en variabel: Sring message = (Sring) noes.ge(0); Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 28

Booleska villkor Uryck som evalueras ill rue eller alse Komplexa uryck kan konsrueras mha. operaorer a > 0 && a < 10 Se appendix D (s.430) Prioriesordning Tabell D.1 (s.431) Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 29

Hur evalueras uryck? Prioriesordningen vikig! && har högre priorie an Gör sanningsabeller ör a vara säker! p q p && q p q p q s s s s Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 30

Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 31 Excercise 3.10 Skriv e uryck med de booleska variablerna a och b som är san när a och b är båda sanna eller båda alska. (a && b)!(a b) a && b b a s a b b a s s s!(a && b) b a s

Excercise 3.10 (a && b)!(a b) a b a && b!(a b) s s s s (a && b) (!a &&!b) Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 32

Sammananing Loop-srukurer gör a block av saser kan upprepas. while-loopen i Java konrollerar upprepningen m.h.a. e boolesk uryck. Collecion-klasser kan illhandahålla Ieraor-objek som örenklar ieraionen över samlingen. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 33

Samlingar med as sorlek Ibland ve man exak hur många elemen en samling har i örväg. De lesa programmerings språk har ensärskild yp med as sorlek: array. I Java kan man lagra både primiiva yper och objek i en array. Synaxen är speciell. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 34

Projeke weblog-analyzer En web-server lagrar ino om varje access underläar webmaserns arbee. Mes populära sidor. Belasning i iden. Hur mycke daa haneras. Trasiga reerenser. Analyserar accesser/imme. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 35

Daayp Skapa e array-objek public class LogAnalyzer privae in[] hourcouns; privae LogileReader reader; Variabel deklaraion (hourcouns har värde null) public LogAnalyzer() hourcouns = new in[24]; reader = new LogileReader();... Skapa array-objeke Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 36

hourcouns-array Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 37

Använda en array Hårda hakar används ör a nå e enskil elemen i arrayen: hourcouns[...] Index måse vara av ypen in Elemenen används som vanliga variabler. På vänser sida i en illdelning : hourcouns[hour] =...; I e uryck: adjused = hourcouns[hour] 3; hourcouns[hour] = hourcouns[hour] + 1; Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 38

or-loopen Liknar while-loopen. Används ör a upprepa e ix anal gånger. Oa ör a ierera över en array. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 39

or-loopen i pseudo-kod Allmänn orm ör or-loopen or(iniialisering; villkor; eer-block ågärd) saser som skall upprepas mosvarande while-loop iniialisering; while(villkor) saser som skall upprepas eer-block ågärd Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 40

E exempel i Java or-loop version or(in hour = 0; hour < hourcouns.lengh; hour++) Sysem.ou.prinln(hour + ": " + hourcouns[hour]); While-loop version in hour = 0; while(hour < hourcouns.lengh) Sysem.ou.prinln(hour + ": " + hourcouns[hour]); hour = hour + 1; Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 41

Sammananing Arrayer lämpliga ör samlingar av ix sorlek Arrayer har speciell synax. or-loopar e alernaiv ill whileloopar när anale upprepningar är kän. or-loopar används oa ör a ierera över arrayer. Objecs Firs wih Java - A Pracical Inroducion using BlueJ, David J. Barnes, Michael Kölling 42