I denne bog kan du lære tre ting:
Programmering. Bogen starter fra grunden af, men har du ikke programmeret før, bør du være rede til at gøre en indsats, dvs. løbende lave en række små programmer, for at øve dig i stoffet. Det forudsættes, at du har kendskab til computere på brugerniveau, dvs. at du uden problemer kan bruge internet, tekstbehandling og andre programmer og problemfrit navigere og flytte og kopiere filer i Windows, Linux eller et andet styresystem. En smule kendskab til matematik er en fordel, men ikke et krav.
Objektorienteret programmering. Bogen arbejder grundigt med begreberne omkring objektorienteret programmering (forkortet OOP) og har mange praktiske eksempler på denne måde at programmere på. Den introducerer og anvender løbende relevante dele af UML-notationen, som er meget anvendt i objektorienteret analyse og design og beslægtede fag.
Java. Programmeringssproget Java har en række faciliteter, som kan lette programmeringen meget. Har du – som mange andre – lært Java ved at prøve dig frem, kan det overblik, der præsenteres i denne bog, hjælpe, samtidig med, at hvert kapitel slutter af med at gå i dybden med avancerede emner.
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 jacob.nordfalk@gmail.com
På http://javabog.dk kan du også hente programeksemplerne fra bogen.
Hvert emne behandles i et særskilt kapitel. Det er i en vis udstrækning muligt, at læse kapitlerne uafhængigt af hinanden.
Det anbefales at læse kapitel 2, 3, 4 og 5 i rækkefølge. Derefter kan man vælge, om man vil:
læse nogle af de valgfrie kapitler (6, 7 og 8)
gå i gang med interfaces, grafik og brugergrænseflader (9, evt. 10, 11, 12, evt. 13)
arbejde med exceptions, filer og netværk (14, 15 og 16)
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 klassevariabler |
Ingen |
3 (5) |
8 Arrays |
Ingen
Grafik og brugergrænseflader (klient-programmering) |
3 (5) |
9 Grafiske programmer |
11 |
9 |
10 Appletter |
Ingen |
9 (5) |
11 Grafiske komponenter |
13 |
5 |
12 Interfaces - grænseflade til objekter |
13, 17, 18, 19, 21 |
11, 12 |
13 Hændelser i grafiske brugergrænseflader |
21
Filer og netværk (server-programmering) |
4 (5) |
14 Exceptions og køretidsfejl |
15 |
14 |
15 Datastrømme og filhåndtering |
16 + 18 |
15 |
16 Netværkskommunikation |
Videregående emner |
12 (16) |
17 Flertrådet programmering |
Ingen |
15 (12) |
18 Serialisering af objekter |
19 |
12, 18 |
19 RMI - objekter over netværk |
Ingen |
14 |
20 JDBC - databaseadgang |
Ingen |
5, 12 (13, 17) |
21 Avancerede klasser |
Ingen |
5 |
22 Objektorienteret analyse og design |
Ingen 0.1.2 Kapitlernes opbygningHvert 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 underviserenDenne 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 specielle projekter til udviklingsværktøjet BlueJ, der mange steder bruges til at støtte eleven i at komme i gang med objektorienteret programmering (se afsnit 1.3.2 og afsnit 4.10.1). Der findes en gratis samlet pakke, hvor underviseren får:
Skriv til jacob.nordfalk@gmail.com, hvis du holder et kursus og er interesseret i undervisningspakken. 0.3 Ændringer i femte udgaveI de seneste år har jeg samlet på rettelser, kommentarer og forslag til bogen og derudover selv undervist i den. Rettelserne og forbedringerne er ført ind i femte udgave, som også er opdateret til moderne sprogbrug på en række punkter.
0.4 TakMin bror Troels' kritik og bidrag har været uundværlige og bogen afspejler mange af hans holdninger (som også er blevet mine) om objektorienteret programmering. Tak til Henrik Tange, Jakob Bendsen, Jan Schoubo og andre, som har ladet mig bruge deres materiale. Tak til Torben Vaarby Laursen for at læse faglig korrektur på manuskriptet til 1. udgave. Mange tak til de mange der har skrevet til mig i tidens løb og påpeget fejl. Denne bog er skrevet på open source med LibreOffice og OpenOffice.org på Linux. Tak til Linux-samfundet for at lave et styresystem, der styrer! Og tak til min kære kone, Anne Mette, for hendes støtte og forståelse. Bonan plezuron legi la libron! Jacob Nordfalk Valby, december 2013. javabog.dk | << forrige | indhold | næste >> | programeksempler | om bogenhttp://javabog.dk/ - Forord af Jacob Nordfalk. Licens og kopiering under Åben Dokumentlicens (ÅDL) hvor intet andet er nævnt (79% af værket). Ønsker du at se de sidste 21% af dette værk (267325 tegn) skal du købe bogen. S� f�r du pæne figurer og layout, stikordsregister og en trykt bog med i købet. |
---|