0 Forord

I denne bog kan du lære tre ting:


Ideen til bogen opstod i efteråret 2000 i forbindelse med, at jeg underviste på et kursus i objektorienteret programmering og Java på IT-Diplomuddannelsen på Ingeniørhøjskolen i København. Jeg savnede en lærebog på dansk og gik sammen med Troels Nordfalk og Henrik Tange i gang med at skrive mine egne noter. Det er blevet en praktisk orienteret lærebog, krydret med mindre, men komplette, eksempler.


Størstedelen af bogen (opgaver og avancerede emner er skåret væk) findes også på adressen http://javabog.dk, der frit kan bruges af alle, der vil lære Java. Bidrag til bogen og hjemmesiden er meget velkomne: Skriv til nordfalk@mobilixnet.dk


http://javabog.dk kan du også hente programeksemplerne fra bogen.


0.1 Bogens opbygning

Hvert emne behandles i et særskilt kapitel. Det er i en vis udstrækning muligt at læse kapitlerne uafhængigt af hinanden.

0.1.1 Veje gennem bogen

Det anbefales at læse kapitel 2, 3, 4 og 5 i rækkefølge. Derefter kan man frit vælge, om man vil:


Her er en oversigt over kapitlerne (midtersøjle), og hvilke kapitler de forudsætter (venstre søjle). Hvis et kapitel er forudsat i parentes, betyder det, at visse eksempler eller opgaver forudsætter det, men man kan godt klare sig uden.


Forudsætter

Kapitelnummer og -navn

Er nødvendig for


2 Basal programmering

Alle efterfølgende

2

3 Objekter

Alle efterfølgende

3

4 Definition af klasser

Næsten alle efterfølgende

4

5 Nedarvning

Næsten alle efterfølgende


Valgfrie emner

4

6 Pakker

Ingen

4

7 Lokale, objekt- og klassevariable

Ingen

3 (5)

8 Arrays

Ingen


Grafik og brugergrænseflader (klient-programmering)

3 (5)

9 Appletter og grafik

10 + 11

9 (5)

10 Grafiske brugergrænseflader

12

5 (9)

11 Interfaces - grænseflade til objekter

12 + 16 + 17 + 18 + 21

10 11

12 Hændelser i grafiske brugergrænseflader

21


Filer og netværk (server-programmering)

4 (5)

13 Undtagelser og køretidsfejl

14

13

14 Datastrømme og filhåndtering

15 + 17

14

15 Netværkskommunikation



Videregående emner

11 (15)

16 Flertrådet programmering

Ingen

14 (11)

17 Serialisering af objekter

18

11 + 17

18 RMI - objekter over netværk

Ingen

13

19 JDBC - databaseadgang

Ingen

5 + 6

20 Avancerede klasser

21

11 20 (12 16)

21 Indre klasser

Ingen

0.1.2 Kapitlernes opbygning

Hvert kapitel starter med en oversigt over indholdet, og hvilke andre kapitler det forudsætter, sådan at man altid har overblik over, om man har de nødvendige forudsætninger.

Så kommer hovedteksten, der introducerer emnerne og kommer med programeksempler, hvor de anvendes.

De fleste kapitler har herefter


0.2 Til underviseren

Denne bog koncentrerer sig om OOP og Java i praksis. Den starter med det helt grundlæggende og kommer i avanceret-afsnittene til bunds i mange aspekter af stoffet. I OOP går den "hele vejen" og får dækket klasser og objekter, indkapsling, arv og polymorfi.


Der er mange måder at undervise i Java på, og bogen giver mulighed for, at underviseren selv vælger, hvilken del af stoffet han vil lægge vægt på i sit kursus:


Bogen er egnet til kursusbrug. Der findes en (gratis) samlet pakke, hvor underviseren får


Skriv til nordfalk@mobilixnet.dk, hvis du holder et kursus og er interesseret i undervisningspakken.


0.3 Tak

Min bror Troels' kritik og bidrag har været uundværlige, og bogen afspejler mange af hans holdinger og tanker (som også er blevet mine) om objektorienteret programmering.

Tak til Henrik Tange, Jakob Bendsen, Peter Sestoft og andre, som har ladet mig bruge

deres materiale.

Tak til Torben Vaarby Laursen for at læse korrektur på manuskriptet.


Sidst men ikke mindst ­ tak til Linux-samfundet for at lave et styresystem der styrer!

Denne bog er skrevet i Sun StarOffice 5.2 under Linux-Mandrake 8.0.

Begge er 100% Open Source og kan gratis hentes på henholdsvis www.staroffice.com og

www.linux-mandrake.com.


Bonan plezuron legi la libron!

(det er esperanto og betyder god fornøjelse med at læse bogen")


Jacob Nordfalk

Espergærde, juli 2001.



Jacob Nordfalk - Objektorienteret programmering i Java - http://javabog.dk