Innhold Forstå program iii

Like dokumenter
Innhold Forst a program

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

Innhold. 3.7 Å lese data fra brukeren Klassen String Å formatere utskrift av desimaltall... 80

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

6108 Programmering i Java. Leksjon 4. Metoder. Roy M. Istad 2015

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

Kapittel 8: Programutvikling

Leksjon 4. Metoder. Program, klasse og metode

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

Leksjon 3. Kontrollstrukturer

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

Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk

Repitisjonskurs. Arv, Subklasser og Grensesnitt

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

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015

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

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Hva er tabeller? Tabell (array): Sammensetning av verdier av samme datatype, under ett navn i hurtigminnet.

AlgDat 10. Forelesning 2. Gunnar Misund

JAVA Oppsummering for IS-102. Even Åby Larsen

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19

Blokker og metoder INF1000 (Uke 6) Metoder

Leksjon 7. Filer og unntak

Hva er en metode. Hva skjer når vi kaller en metode

Velkommen til. INF våren 2016

Leksjon 3. Kontrollstrukturer

Høgskolen i Telemark EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

Leksjon 2. Setninger og uttrykk

Leksjon 2. Setninger og uttrykk

EKSAMENSFORSIDE. Emnenavn: Programmering i Java Tid fra / til: 10:00-14:00. Fakultet: Handelshøyskolen Antall vedlegg: 1

UNIVERSITETET I OSLO

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

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

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

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

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

IN1010 Objektorientert programmering Våren 2019

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

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

INF Innleveringsoppgave 6

Læreboken på 45 minutter

UNIVERSITETET I OSLO

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

Hva er en metode? INF1000 Forelesning 8. Hva skjer når vi kaller en metode? Hvorfor bruke metoder?

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

INF1000 Forelesning 8. Litt repetisjon: Metoder og klasser Innkapsling av variable og metoder Hvordan gripe an et stort problem?

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

Kapittel 5: Objektkommunikasjon

Leksjon 3. Kontrollstrukturer

Introduksjon til databaseprogrammering med Java

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?

Semantisk Analyse del III

2 Om statiske variable/konstanter og statiske metoder.

Leksjon 3. Kontrollstrukturer

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

Algoritmer og datastrukturer E Løkker i Java

INF 1000 høsten 2011 Uke september

Velkommen til INF2100

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Operativsystemer og grensesnitt

Generelt om operativsystemer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Eksamen. Objektorientert Programmering IGR 1372

Programmeringsspråket C

Del 1 En oversikt over C-programmering

Datatyper og typesjekking

Rekursjon. Binærsøk. Hanois tårn.

s 678 * Hvordan designe og programmere objektorientert * Støtte til oppstart på Oblig 4: Jobbe frem eget forslag til datastruktur

INF 1000 høsten 2011 Uke 10: 25. november

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

UNIVERSITETET I OSLO

Forelesning inf Java 4

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

Innhold. INF1000 (Uke 11) Programmering. Rep: Metoder. Rep: Hva er en metode? Litt repetisjon. To måter å programmere på

IN1010 våren januar. Objektorientering i Java

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Introduksjon til objektorientert programmering

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

Dagens tema Kapittel 8: Objekter og klasser

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten

Kapittel 1 En oversikt over C-språket

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Datatyper og typesjekking

INF2810: Funksjonell Programmering. Mer om verditilordning og muterbare data.

Datatyper og typesjekking

Velkommen til INF2100 Jeg er Dag Langmyhr

TDT4100 Objektorientert programmering

1 OM PLS-ER Historikk Utviklingen de senere år Kort om oppbygning Inn- og Utganger... 11

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

UNIVERSITETET I OSLO

2 Om statiske variable/konstanter og statiske metoder.

Transkript:

Innhold 1 Forstå program 1 1.1 Kom i gang med Java....................... 1 Lese programkode........................ 2 Kompilere og utføre Java-program............... 4 1.2 Den programmerbare maskinen................. 6 Maskin og program........................ 7 Oppbygging av en datamaskin................. 8 Tallsystem og tegnsett...................... 9 1.3 Programmeringsspråk...................... 12 Fra kildekode til maskinkode.................. 12 Fra lavnivå til høynivå...................... 14 Om det å lære nye språk..................... 16 1.4 Gjenbruk av besvergelser: malfiler............... 18 Konsollprogram.......................... 18 Innlesing og utskrift i dialogvindu............... 19 Grafikkprogram.......................... 20 Interaktiv bruk av Java med jshell.............. 21 Katalogstruktur og bruk av malfiler.............. 22 Ordforrådet i Java......................... 23 Kommentarer........................... 25 1.5 Programutvikling......................... 27 Lære programmering....................... 27 Fra problem til kode....................... 28 iii

iv 1.6 Oppgaver............................. 31 2 Setninger og uttrykk 33 2.1 Variabler og tilordning...................... 33 Variabeldeklarasjon og tilordning med konkrete verdier... 34 Kopiering............................. 36 Programmets tilstand....................... 37 2.2 Datatyper............................. 39 2.3 Fra inndata til utdata....................... 40 Utskrift til konsoll......................... 42 Inndata og utdata med dialogvindu.............. 43 2.4 Lage egne navn i Java....................... 49 Gode råd for navnsetting..................... 51 2.5 Uttrykk og verdier........................ 52 Beregningsrekkefølge....................... 53 Typeblanding og typetvang (casting).............. 54 Oppdateringsoperatorer..................... 60 2.6 Bruk av metoder i klassen java.lang.math.......... 61 Sammensatte metodekall..................... 63 Konstanter............................. 65 2.7 Grafikk............................... 66 Oppbyggingen av grafikkprogram............... 66 Koordinatsystemet........................ 68 Skrive tekst i grafikkvinduet................... 69 Tegne linjer, rektangel og sirkler................. 70 Variabler og brukerkommunikasjon.............. 73 2.8 Oppgaver............................. 75 3 Kontrollstrukturer 79 3.1 Valgsetninger........................... 79 Forgreining med if else.................... 80 Valgsetninger uten else-grein.................. 81 3.2 Betingelser............................. 83 Utsagn og logikk......................... 83 Datatypen boolean........................ 84 Gjensyn med operatorer..................... 86 Beregning av sammensatte uttrykk............... 87 Operatorprioritet......................... 88 3.3 Forgreining med switch..................... 92 3.4 for-løkker og tellevariabler................... 94 Hva skjer i maskinen?...................... 96

v 3.5 while-løkker............................ 100 3.6 Løkker og inndata......................... 103 Gjentatt innlesing med for-løkke................ 103 Brukerstyrt innlesing med while-løkke............ 104 do-løkker.............................. 106 3.7 Kombinasjoner av løkker og valg................ 109 3.8 Systematisk testing........................ 112 3.9 Kontrollstrukturer og grafikk.................. 115 Animasjon............................. 118 3.10 Oppgaver............................. 122 4 Metoder 125 4.1 Lage større program....................... 125 4.2 Metodedeklarasjon og metodekall............... 127 Utførelse av enkle metodekall.................. 129 4.3 Parametre............................. 130 Utførelse av metodekall med parametre............ 132 Flere parametre (parameterliste)................ 133 4.4 Returverdi............................. 134 Utførelse av metodekall med returverdi............ 137 Funksjoner og prosedyrer.................... 139 4.5 Uttrykk som parametre...................... 143 Verdioverføring.......................... 144 4.6 Et større eksempel: kalender................... 148 Dummy-metoder......................... 148 Oppdeling av problem...................... 150 Kalenderen som nettside..................... 152 4.7 Klassemetoder........................... 153 Hjelpemetoder på egne filer................... 153 Java-biblioteket pakker og moduler.............. 156 Statisk import........................... 158 4.8 Grafiske metoder......................... 159 Klassemetoder og andre metoder................ 162 4.9 Oppgaver............................. 164 5 Tabeller 167 5.1 Tabeller fra dagliglivet...................... 167 5.2 Grunnleggende operasjoner på tabeller............ 169 Deklarasjon av tabeller...................... 171 5.3 Enkel bruk av tabeller...................... 174 Gjennomløp med for-løkke................... 174

vi Utskrift fra en tabell........................ 175 Holde rede på telleresultat.................... 176 5.4 Sortering og søk.......................... 179 Sekvensielle søk.......................... 179 Sorterte datasett.......................... 181 Kontroll av sortering....................... 182 En enkel sortering......................... 183 5.5 Tabeller og metoder........................ 186 Tilordning med tabellvariabler................. 186 Tabeller og parameteroverføring................ 187 Tabeller som returverdier.................... 189 5.6 Utvidet for-løkke......................... 190 5.7 Arrays-klassen.......................... 194 Verdilikhet og referanselikhet.................. 195 En mer avslappet form for likhet................ 197 Søk og innsetting i sorterte tabeller............... 198 5.8 Flerdimensjonale tabeller..................... 200 Deklarasjon av todimensjonale tabeller............. 200 Indeksering og gjennomløp av todimensjonale tabeller... 201 Flere dimensjoner enn to..................... 205 5.9 Oppgaver............................. 208 6 Objekt 213 6.1 Lage egne datatyper....................... 213 6.2 Opprette og endre objekt..................... 219 Initiering med konstruktør.................... 221 6.3 Objektmetoder........................... 222 String-klassen og regulære uttrykk.............. 222 Objektmetoder i egendefinerte klasser............. 228 Bruk av this............................ 229 Metoder som endrer, og metoder som avleser......... 232 Innkapsling og modifikatorene public og private...... 234 Krav til dataene.......................... 236 Overlasting............................. 237 6.4 Referansetabeller......................... 239 Representasjon av databasetabeller............... 240 Klassevariabler.......................... 243 6.5 Kommunikasjon mellom objekt................. 248 Objekt og parameteroverføring................. 248 Objekt som returverdi...................... 250 Kjedet punktnotasjon....................... 251

vii Mer om likhet........................... 253 Levetiden til variabler...................... 255 6.6 Oppramstyper enum....................... 257 6.7 Oppgaver............................. 264 7 Filer og unntak 269 7.1 Filer og datastrømmer...................... 269 Skrive til fil............................. 270 Lese fra fil............................. 273 Filtyper............................... 275 Datastrømmer........................... 276 Kommandolinjeparametre.................... 279 File-klassen............................ 280 7.2 Bruksområder for Scanner-klassen............... 281 Endre skilletegn.......................... 281 Fra fil til datastruktur....................... 283 Lese typede data......................... 284 Strukturerte data......................... 285 7.3 Standard innputt og standard utputt.............. 288 Omdirigering til fil........................ 289 Produksjonslinjer......................... 290 Lese nettsider........................... 292 7.4 Unntakshåndtering........................ 293 Fange unntak........................... 294 Robust innlesing.......................... 297 Kaste unntak............................ 297 7.5 Binære filer og serialisering................... 300 7.6 Databaseprogrammering med JDBC og SQLite........ 302 Lage en SQLite-database..................... 302 Java-programmet......................... 304 7.7 Oppgaver............................. 307 8 Grafisk brukergrensesnitt 313 8.1 JavaFX............................... 313 Et første JavaFX-program.................... 314 Scenegrafen............................ 317 Bruke stilregler med JavaFX................... 318 8.2 Hendelsesstyrte program.................... 318 Håndtere knappetrykk med lambdauttrykk.......... 319 Håndtere flere hendelser..................... 323 Hendelsesløkka.......................... 325

viii 8.3 Panel................................ 326 Låst layout............................. 326 Layouthåndtering......................... 327 BorderPane og skalering..................... 328 Panel og komponentoppsett................... 330 8.4 Flere komponenter........................ 333 Nedtrekksliste ComboBox.................... 333 Tekstområde TextArea..................... 337 Fildialog FileChooser..................... 341 Radioknapper og avmerkingsbokser.............. 342 Skyveknapper........................... 344 8.5 Menyer............................... 347 8.6 Grafikk............................... 348 Figurer som objekt........................ 348 Musehendelser og tastetrykk.................. 351 Canvas og tegnemetoder..................... 353 8.7 Animasjon............................. 355 PacMan-grafikk.......................... 355 PacMan i bevegelse........................ 356 8.8 Oppgaver............................. 361 9 Objektorientert programmering 367 9.1 Objektsamlinger.......................... 367 Fysisk og logisk tabell...................... 369 Gjensyn med set- og get-metoder................ 370 Operasjoner på objektsamlinger................. 371 Hjelpemetode for søk....................... 372 Søk................................. 374 Innsetting............................. 375 Oppdatering............................ 376 Sletting............................... 377 9.2 Subklasser og arv......................... 379 Direkte tilgang fra subklasser med protected........ 381 Arvehierarki............................ 382 Dynamisk binding........................ 384 Abstrakte klasser......................... 385 Polymorfi.............................. 388 9.3 Grensesnitt (interface)...................... 390 Generelle objektsamlinger.................... 390 Collection-klassene i Java-biblioteket.............. 393 Generiske datatyper....................... 394

ix Bruk av grensesnitt i GUI-programmering........... 397 Simulering av fysiske objekt................... 399 Rekursjon............................. 401 9.4 Brukergrensesnitt og modell................... 404 Problembeskrivelse: kalkulator................. 404 Brukergrensesnitt og modellklasse............... 405 Metodene i modellklassen.................... 405 Et enkelt testprogram....................... 406 Bygge opp tall fra siffer...................... 407 Håndtere operatorer....................... 408 Brukergrensesnittet........................ 410 Mulige utvidelser......................... 412 9.5 Veien videre............................ 412 9.6 Oppgaver............................. 414 Reserverte ord 419 Unicode 421 Kodestandard for Java 423 Litteraturliste 427 Stikkordregister 429