Innholdsfortegnelse


Forord
1Datamaskiner og programmeringsspråk
1.1Programmering
1.2Oppbygningen av programmer
1.3Programmeringsspråket Java
1.4Redigering av kildekode
1.5Utviklingsverktøy for Java
1.6Kompilering av Java-programmer
1.7Kjøring
1.8Den virtuelle Java-maskinen
1.9Kontrollspørsmål
1.10Oppgaver
2Grunnleggende språkkonstruksjoner
2.1Utskrift til terminalvindu
2.2Lokale variabler
2.3Heltall og flyttall
2.4Aritmetiske uttrykk og operatorer
2.5Formatert utskrift
2.6Innlesing av numeriske verdier fra tastaturet
2.7Sannhetsuttrykk
2.8Kontrollflyt
2.9Valgsetninger
2.10Sammensatte sannhetsuttrykk
2.11Løkker
2.12Påstander
2.13Kontrollspørsmål
2.14Oppgaver
3Bruk av objekter
3.1Innføring i objektmodellen
3.2Strenger
3.3Manipulering av referanser
3.4Håndtering av primitive verdier som objekter
3.5Mer om kontrollflyt
3.6Tabeller
3.7Mer om iterering over samlinger: den forenklete for-løkken
3.8Pseudo-slumptallsgenerator
3.9Kontrollspørsmål
3.10Oppgaver
4Utforming av egne klasser
4.1Klassedeklarasjoner
4.2Definisjon av egenskaper: feltvariabler
4.3Definisjon av atferd: instansmetoder
4.4Statiske medlemmer i en klasse
4.5Initialisering av objekttilstand
4.6Oppramstyper
4.7Kontrollspørsmål
4.8Oppgaver
5Objektkommunikasjon
5.1Ansvar og roller
5.2Kommunikasjon og samarbeid
5.3Forbindelser mellom objekter
5.4Overlasting av metodenavn
5.5Dokumentering av kildekode
5.6Kontrollspørsmål
5.7Oppgaver
6Arv
6.1Sentrale begreper ved arv
6.2Utvidelse av egenskaper og atferd
6.3Bruk av arvede medlemmer
6.4Utvidelse at atferd i subklassen
6.5Klasser og metoder som ikke kan utvides
6.6Kontrollspørsmål
6.7Oppgaver
7Polymorfisme og kontrakter
7.1Programmering med arv
7.2Kontrakter i Java
7.3Abstrakte klasser
7.4Javas bruk av abstrakte og endelige klasser
7.5Kontrollspørsmål
7.6Oppgaver
8Programutvikling
8.1Utvikling av større programmer
8.2Enkel testing med assert
8.3Testrammeverk
8.4Utskrift av spillebrett
8.5Refaktorering av programkode
8.6Interaktivt fire-på-rad spill
8.7Avslutting av spill
8.8Maskinstyrt spiller
8.9Klassebibliotek
8.10Innkapsling og informasjonsskjuling
8.11Basisklasser
8.12Kompilering og kjøring av kode i pakker
8.13Kontrollspørsmål
8.14Oppgaver
9Enkle algoritmer for sortering og søking
9.1Ordnede datamengder
9.2Sortering ved utvalg
9.3Sortering ved innsetting
9.4Boblesortering
9.5Sortering av tabeller med strenger
9.6Lineært søk
9.7Binært søk
9.8Programutvikling: en enkel CD-samling
9.9Sortering og søking i Javas standardbibliotek
9.10Kontrollspørsmål
9.11Oppgaver
10Bruk av dynamiske datastrukturer
10.1Oversikt
10.2Dynamiske strenger: StringBuilder
10.3Innføring i generiske typer
10.4Samlinger
10.5Dynamiske tabller: ArrayList<E>
10.6Mengder: HashSet<E>
10.7Nøkkeltabeller: HashMap<E>
10.8Mer om generiske typer
10.9Utvalgte sorterings- og søkemetoder i standardbiblioteket
10.10Kontrollspørsmål
10.11Oppgaver
11Implementering av dynamiske datastrukturer
11.1Kjedete lister
11.2Andre abstrakte datatyper: stabler og køer
11.3Kontrollspørsmål
11.4Oppgaver
12Rekursjon
12.1Rekursjon og iterasjon
12.2Rekursive algoritmer
12.3Uendelig rekursjon
12.4Rekursivt binært søk
12.5Tårn i Hanoi
12.6Rekursiv sorteringsalgoritme
12.7Tilfeller hvor iterative løsninger er bedre
12.8Kontrollspørsmål
12.9Oppgaver
13Unntakshåndtering
13.1Hva er et unntak?
13.2Metodeutføring og unntakspropagering
13.3Unntakshåndtering
13.4Unntaksklasser
13.5Eksplisitt kasting av et unntak
13.6Håndtering av flere unntak
13.7Håndtering av kontrollerte unntak
13.8Definere egne unntak
13.9Bruk av finally-blokk
13.10Kontrollspørsmål
13.11Oppgaver
14Filer og strømmer
14.1Strømmer
14.2Filbehandling
14.3Tekstfiler
14.4Terminalvindu I/O
14.5Binære filer
14.6Objektserialisering
14.7Direkte filtilgang
14.8Kontrollspørsmål
14.9Oppgaver
15Grafiske brukergrensesnitt
15.1Enkel dialogutforming med klassen JOptionPane
15.2Oversikt over GUI-utvikling
15.3Komponenter og containere
15.4GUI-kontrollkomponenter
15.5Utforming av layout
15.6Hendelsesdrevet programmering
15.7Anonymklasser som lyttere
15.8Programmeringsmodellen for GUI-applikasjoner
15.9GUI for fire-på-rad-spill
15.10Kontrollspørsmål
15.11Oppgaver
AFasit til kontrollspørsmål
A.1Datamaskiner og programmeringsspråk
A.2Grunnleggende språkkonstruksjoner
A.3Bruk av objekter
A.4Utforming av egne klasser
A.5Objektkommunikasjon
A.6Arv
A.7Polymorfisme og kontrakter
A.8Programutvikling
A.9Enkle algoritmer for sortering og søking
A.10Bruk av dynamiske datastrukturer
A.11Implementering av dynamiske datastrukturer
A.12Rekursjon
A.13Unntakshåndtering
A.14Filer og strømmer
A.15Grafiske brukergrensesnitt
BReserverte ord i Java
COversikt over Java-operatorer
DUtdrag av Unicode-tegnsett
ETallsystemer og tallrepresentasjon
E.1Tallsystemer
E.2Konvertering mellom 2-, 8- og 16-tallsystemene
E.3Konvertering fra 10-tallsystemet
E.4Heltallsrepresentasjon
E.5Tekstrepresentasjon av heltall
FJava-programutviklingsverktøy
F.1Programutviklingsverktøy
F.2Kommandoer
F.3Sette klassesti
GInnføring i UML
G.1Klassediagram
G.2Objektdiagram
G.3Sekvensdiagram
G.3Aktivitetsdiagram
HInnføring i snutter
H.1Klasser og metoder for snutter
H.2Kjøring av snutter
H.3En snutt med hendelseshåndtering og parametere
H.4Sammenligning av snutter og applikasjoner
IFormatering av utskrift
I.1Syntaks for formatstrenger
I.2Konverteringskoder og konverteringsflagg
I.3Eksempler
Engelsk stikkordliste
Stikkordsliste

Khalid A. Mughal
Torill Hamre
Rolf W. Rasmussen
jfps[at]ii.uib.no