Innhold. 3.7 Å lese data fra brukeren... 72 3.8 Klassen String... 74 3.9 Å formatere utskrift av desimaltall... 80



Like dokumenter
Innhold Innledning 1. 5 Løkke som kontrollstruktur Et program med løkke som kontrollstruktur 132. vii

Innhold Forst a program

Innhold Forstå program iii

GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser. En oversikt over kapittel 19 i boka

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september

AlgDat 10. Forelesning 2. Gunnar Misund

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

Velkommen til. INF våren 2016

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 8: Programutvikling

Velkommen til. IN1010 Objektorientert programmering Våren 2018

Leksjon 3. Kontrollstrukturer

Del 1 En oversikt over C-programmering

Arbeidskrav 1. Se fremdriftsplanen for innleveringsfrist. Emneansvarlig: Olav Dæhli 1

Tråder Repetisjon. 9. og 13. mai Tråder

Velkommen til. INF våren 2017

Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk

Å lese tall fra en fil, klassen Scanner

2 Om statiske variable/konstanter og statiske metoder.

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

IN1010 Objektorientert programmering Våren 2019

Introduksjon til objektorientert programmering

UNIVERSITETET I OSLO

INNHOLDSFORTEGNELSE. 1. HOVEDEMNER... 1-i 1. INNHOLDSFORTEGNELSE... 1-i 1. Datamaskiner og programmeringsspråk...1-1

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

Klassen javax.swing.joptionpane

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

Algoritmer og datastrukturer E Løkker i Java

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

INF Innleveringsoppgave 6

Hva er programmering?

Leksjon 3. Kontrollstrukturer

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Læreboken på 45 minutter

Mål med kurset. Java i INF Dagens tema. GUI med Swing. Dokumentasjon

Kapittel 7: Mer om arv

UNIVERSITETET I OSLO

TDT4105 Informasjonsteknologi, grunnkurs

INF1010 våren Arv og subklasser del 1

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Innhold. Innledning 1

Excited. Hvordan komme i gang med tekstbasert programmering? Centre for Excellent IT Education. Guttorm Sindre

PG4200 Algoritmer og datastrukturer Lab 1. 8.januar I dag skal vi undersøke en rekke velkjente databeholdere i Java:

JavaServer Pages (JSP)

6108 Programmering i Java. Leksjon 1. Introduksjon til programmering og til Java

Arbeidskrav 1. Se fremdriftsplanen for innleveringsfrist. Emneansvarlig: Olav Dæhli 1

AlgDat 12. Forelesning 2. Gunnar Misund

Kapittel 1: Datamaskiner og programmeringsspråk

JAVA CHRISTOFFER MARTINSEN

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

INF1000 : Forelesning 4

Leksjon 3. Kontrollstrukturer

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

Test 2 OOP. - Prøveeksamen

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

INF1010 siste begreper før oblig 2

Kapittel 9: Sortering og søking Kort versjon

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

Del 4 Noen spesielle C-elementer

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

TDT4100 Objektorientert programmering

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Fra problem til program

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

IN1010 V18, Obligatorisk oppgave 5

INF1010 våren Arv og subklasser - del 2

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

TDT4100 Objektorientert programmering

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Tråder Repetisjon. 9. og 13. mai Tråder

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

UNIVERSITETET I OSLO

Pensum: fra boken (H-03)+ forelesninger

Obligatorisk oppgave 4: Lege/Resept

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

HØGSKOLEN I SØR-TRØNDELAG

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

HØGSKOLEN I SØR-TRØNDELAG

Forord. Temaer som er vektlagt. Presentasjon av konsepter

Eksamen. Objektorientert Programmering IGR 1372

Debugging. Tore Berg Hansen, TISIP

Læringsmål og pensum. Oversikt

1. NetBeans IDE: Lage en enkel mobilapplikasjon

Pensum: fra boken (H-03)+ forelesninger

Oversikt. Uke 2, INF 1000, 30 aug Variable, tilordninger og uttrykk. Repetisjon: Java programmering

Transkript:

Innhold Forord... v 1 Introduksjon... 1 1.1 Forutsetninger for å lese denne boka... 2 1.2 Hva er et program?... 3 1.3 Hvordan man kan betrakte en datamaskin... 4 1.4 Hvordan en datamaskin kan tenke... 6 1.5 Et lite eksempelprogram... 7 1.6 Å utvikle og vedlikeholde programmer... 13 1.7 Java-applikasjoner, Java-servleter og Java-appleter... 15 1.8 API-referanse... 19 1.10 Repetisjonsoppgaver... 22 1.11 Oppgaver... 22 2 Variabler, datatyper og uttrykk... 25 2.1 Data og variabler... 25 2.2 Algoritmer, programmeringsfeil og testdata... 29 2.3 Setninger, blokker og navn... 32 2.4 Variabler og konstanter... 34 2.5 Datatyper... 37 2.6 Tilordninger og aritmetiske uttrykk... 43 2.7 Typeomforming... 46 2.8 Beregninger i et oppussingsprosjekt... 48 2.11 Programmeringsoppgaver... 53 3 Bruk av ferdige klasser... 55 3.1 Objekter som modeller av virkeligheten... 56 3.2 Å bruke ferdige klasser... 60 3.3 Klassen Random... 66 3.4 Å organisere klasser i pakker... 69 3.5 Unntaksobjekter... 70 3.6 Klassekonstanter og -metoder i Javabiblioteket... 70 3.7 Å lese data fra brukeren... 72 3.8 Klassen String... 74 3.9 Å formatere utskrift av desimaltall... 80

xiv Innhold 3.10 API-referanse... 82 3.12 Repetisjonsoppgaver... 89 3.13 Programmeringsoppgaver... 90 4 Å lage egne klasser... 91 4.1 Å programmere en klasse... 92 4.2 Tilgangsmodifikatorene private og public...100 4.3 Innholdet i en klasse...101 4.4 Metoden tostring()...110 4.5 En klasse til og noen nye operatorer...111 4.6 Vinduer med enkel grafikk...115 4.7 Koordinater...120 4.8 Farger og skrifttyper...122 4.9 API-referanse...126 4.11 Repetisjonsoppgaver...133 4.12 Programmeringsoppgaver...134 5 Valg som kontrollstruktur...135 5.1 En enkel kalkulator...136 5.2 Et valg er en kontrollstruktur...137 5.3 Blokker inne i metoder...142 5.4 if-setningen...144 5.5 Nøstet if og flervalgssetninger...147 5.6 Logiske uttrykk...154 5.7 Sammenligning av strenger...158 5.8 Å sammenligne beregnede desimaltallverdier...160 5.9 Flervalgssetningen switch...161 5.10 Betingelsesoperatoren?:...163 5.11 API-referanse...164 5.13 Repetisjonsoppgaver...167 5.14 Programmeringsoppgaver...168 6 Løkke som kontrollstruktur...171 6.1 Tellerkontrollerte løkker...172 6.2 En løkke med en generell betingelse...175 6.3 Et eksempel på grafikk...177 6.4 for-setningen...180 6.5 Nøstede kontrollstrukturer...181 6.6 do-while-setningen...182 6.7 Valg av riktig løkkesetning...185 6.8 Kontroll av inndata...185 6.9 Å bruke pakker som ikke tilhører Java API-et...189 6.10 Å skrive ut tall i kolonner...192 6.12 Repetisjonsoppgaver...194 6.13 Programmeringsoppgaver...194 7 Tabeller...197

7.1 Hva er en tabell?...197 7.2 Å kopiere tabeller...203 7.3 Klassen Maned med nedbørdata...205 7.4 Sortering...209 7.5 Søking...212 7.6 Klassen java.util.arrays...214 7.7 Online API-dokumentasjonen...215 7.8 Todimensjonale tabeller...218 7.9 Et menystyrt program...225 7.10 Mer enn to dimensjoner...230 7.11 Tabell av strenger...231 7.12 Tabell av referansetype som medlem i klasse...234 7.13 Flerdimensjonale tabeller og objektorientert programmering..239 7.14 API-referanse...240 7.16 Repetisjonsoppgaver...242 7.17 Programmeringsoppgaver...242 8 Samarbeid mellom objekter...245 8.1 Et eksempel på samarbeid mellom objekter...246 8.2 Komposisjon, en-del-av-sammenheng...249 8.3 Referansetyper i grensesnittet til en klasse...255 8.4 Aggregering, en løsere en-del-av-sammenheng...260 8.5 Å sammenligne objekter...263 8.6 Oppussingseksemplet, del 1...269 8.8 Repetisjonsoppgaver...276 8.9 Programmeringsoppgaver...276 9 Tabell-lister og programmering av assosiasjoner...279 9.1 Tabell-lister...280 9.2 Et aggregat med tabell-liste...282 9.3 Wrapperklassene Integer, Double med flere...284 9.4 Assosiasjoner...286 9.5 Oppussingseksemplet, del 2...288 9.6 Interfacet Comparable og sortering av objekter...295 9.7 Interfacet Comparator og sortering av tekster...301 9.8 API-referanse...305 9.9 Nye begrep i dette kapitlet...309 9.10 Repetisjonsoppgaver...310 9.11 Programmeringsoppgaver...311 10 Arv og polymorfi...313 10.1 Generalisering, spesialisering og arv...314 10.2 Klassen Person med subklasser...316 10.3 Polymorfi...321 10.4 Abstrakte klasser...324 10.5 Hva hvis polymorfi ikke hadde eksistert?...328 xv

xvi Innhold 10.6 Tilgangsmodifikatoren protected...331 10.7 Oppussingseksemplet, del 3...335 10.8 Eksempler på arv i to nivåer og bruk av final...339 10.9 Regler og syntaks...342 10.10 Interface...346 10.12 Repetisjonsoppgaver...352 10.13 Programmeringsoppgaver...353 11 Unntakshåndtering...357 11.1 Unntak og unntaksobjekter...358 11.2 try-setningen...363 11.3 Å lage egne unntaksobjekter...369 11.4 API-referanse...372 11.6 Repetisjonsoppgaver...374 12 Bruk av datafiler og strømmer...375 12.1 Datafiler og strømmer...376 12.2 Et eksempel på en datafil...377 12.3 Å lese tekst fra en fil...379 12.4 Å skrive tekst til en fil...382 12.5 Lesing og skriving til fil sammendrag...383 12.6 Å lese tall fra en datafil...384 12.7 Kommunikasjon med konsollet...386 12.8 Binær overføring av data...388 12.9 Direkte tilgang til innholdet i en fil...389 12.10 Serialisering...393 12.11 API-referanse...397 12.13 Repetisjonsoppgaver...402 12.14 Programmeringsoppgaver...403 13 GUI-programmering og hendelser...405 13.1 GUI-komponenter...406 13.2 Å trykke på en knapp...408 13.3 Indre klasser...414 13.4 Å håndtere layouten...420 13.5 API-referanse...430 13.7 Repetisjonsoppgaver...437 13.8 Programmeringsoppgaver...437 14 GUI-komponenter for valg og tekster...439 14.1 Å gi brukeren valg mellom alternativer...440 14.2 Avkrysningsruter...442 14.3 Radioknapper...444 14.4 Listebokser...446 14.5 Spinnere...452 14.6 Kontroll av inndata...454 14.7 Tekstkomponenter og fokuslyttere...456

14.8 Andre måter å programmere lyttere på...463 14.9 API-referanse...465 14.11 Repetisjonsoppgaver...471 14.12 Programmeringsoppgaver...472 15 Å lage brukergrensesnitt...475 15.1 Menyer...475 15.2 Knapperader...478 15.3 Ulike typer vinduer...482 15.4 Vinduslyttere...483 15.5 Dialogvinduer...485 15.6 GUI-komponenten tabell (klassen JTable)...500 15.7 GridBagLayout som layout-håndterer...502 15.8 Oppussingseksemplet, del 4...506 15.9 Å lage egne datamodellklasser...516 15.10 API-referanse...520 15.12 Repetisjonsoppgaver...526 15.13 Programmeringsoppgaver...527 16 Tråder...529 16.1 Tråder i prosesser...529 16.2 Deling av tid mellom tråder...531 16.3 Eksempel på bruk av tråder...533 16.4 Trådenes tilstander...537 16.5 Kommunikasjon mellom tråder...538 16.6 Låser og synkronisering...539 16.7 Mer kontroll: wait(), notify() og notifyall()...543 16.8 Å titte på trådene med JDB...547 16.9 API-referanse...548 16.11 Repetisjonsoppgaver...551 16.12 Programmeringsoppgave...551 17 Datastrukturer og algoritmeteori...553 17.1 Grafer...553 17.2 Lister...556 17.3 Redningen: Collection, List og LinkedList...563 17.4 Køer og stakker...566 17.5 Rekursjon...567 17.6 Trær...569 17.7 Trær i API-et...577 17.8 Hashtabeller...578 17.9 Iteratorer...582 17.10 API-referanse...583 17.12 Repetisjonsoppgaver...588 17.13 Programmeringsoppgaver...589 18 Mer om appleter...591 xvii

xviii Innhold 18.1 Hva appleter gjør på web...591 18.2 Sikkerhet...592 18.3 Å programmere en applet...595 18.4 Sikkerheten i praksis...599 18.5 Kommunikasjon mellom applet og nettleser...601 18.6 API-referanse...603 18.8 Repetisjonsoppgaver...606 18.9 Programmeringsoppgaver...607 19 Distribuerte systemer med socket-programmering og RMI...609 19.1 Socketer...610 19.2 Objekter som samarbeider over nettet...616 19.3 Hvordan foregår kommunikasjonen mellom objektene?...622 19.4 RMI og appleter...629 19.5 Deploymentdiagram...629 19.6 Et distribuert system med tilbakekall...631 19.7 API-referanse...642 19.9 Repetisjonsoppgaver...644 19.10 Programmeringsoppgaver...645 20 Å programmere mot en database...647 20.1 Databasedrivere...648 20.2 Å få kontakt med en database...649 20.3 Et større eksempel...654 20.4 En databaseapplikasjon...660 20.5 Trelagsarkitektur...665 20.6 Transaksjoner...671 20.7 Kompilerte SQL-setninger...674 20.8 API-referanse...676 20.9 Nye begrep i dette kapitlet...678 20.10 Repetisjonsoppgaver...679 20.11 Programmeringsoppgaver...680 21 Web-programmering med JavaServer Pages...683 21.1 Ulike måter å programmere for web...684 21.2 Installasjon av programvare...685 21.3 Servleter...686 21.4 JavaServer Pages (JSP)...690 21.5 Hva består JSP av?...691 21.6 Å lese inn data fra brukeren...695 21.7 Klientsidevalidering med JavaScript...702 21.8 JSP-sider som kommuniserer med databaser...704 21.9 Å lagre tilstandsinformasjon...712 21.10 API-referanse...723 21.12 Repetisjonsoppgaver...728 21.13 Programmeringsoppgaver...729

22 Å teste programmer...731 22.1 Refleksjon...731 22.2 Enhetstesting med JUnit...733 22.3 Systemtesting...741 22.4 Assert...743 22.5 Regresjonstesting...745 22.6 Akseptansetesting...745 22.7 Svartboks- og hvitbokstesting...745 22.8 API-referanse...746 22.10 Repetisjonsoppgaver...749 Vedlegg A: Bruk av Java SDK og WinEdit...751 A.1 J2SE...751 A.2 Kjøring av appleter...755 A.3 WinEdit...756 A.4 Pakking med jar...757 A.5 Dokumentasjon med javadoc...759 Vedlegg B: Reserverte ord...763 Vedlegg C: Tallsystemer...765 Vedlegg D: Unicode-tegnsettet...769 Vedlegg E: HTML og appleter...771 E.1 HTML...771 E.2 Inkludering av appleter...773 Vedlegg F: Unntak fra kodestandard...775 Vedlegg G: Referanser...777 Stikkordliste...779 xix

xx Innhold