Hovedsiden
Forord til boka   
Innhold (pdf)  
Forelesninger
Løsninger små-oppg.
Løsninger prog.-oppg.
Eksempler fra boka
mittBibliotek

Lenker
Kurs
Tips     
 
OBS! Endringer pga komp.rev.

Trykkfeil


 

 

 
 

Forord til 3.utgave

Denne læreboka er tilrettelagt for høyere utdanning i teknologiske fag, der Java og objektorientering danner basis i programmeringsopplæringen. Boka dekker både grunnleggende og videregående opplæring i programmering.

Du holder nå tredje utgave av boka i hånden. I skrivende stund er det bare 16 måneder siden andre utgave så dagens lys. I mellomtiden har vi fått versjon 1.5 av Java 2 Platform, Standard Edition (J2SE). Da vi ble klar over hvilke endringer det innebar for programmeringen, så måtte vi bare skrive en ny utgave av boka. Som programmerere har vi allerede blitt meget glade i mange av de nye elementene i Java. Så når vi i vårt daglige arbeid av og til må jobbe med tidligere versjoner av J2SE, så merkes det veldig raskt.

Resten av dette forordet, med unntak av takksigelsene til slutt, er veldig teknisk. Så dersom du er nybegynner i Java-programmering, hopp noen sider fram, til innledningen. Der begynner vi med det helt grunnleggende.

Hva har versjon 1.5 gitt oss? I korte trekk nevner vi:

  • Generiske typer er den største nyvinningen. Vi kan lage klasser og metoder der datatypen er parameter. Java API-et er i stor grad skrevet om slik at generiske typer brukes; for eksempel så angir vi nå datatypen når vi oppretter en tabell-liste: ArrayList navnene = ... Vi slipper dermed også castingen når dataene skal hentes ut igjen.
  • For å legge tall inn i en tabell-liste har vi tidligere måttet gå veien om Number-klassene. Det er nå automatisk omforming mellom de primitive datatypene og de tilhørende wrapperklassene. Mekanismen kalles autoboxing og auto-unboxing. Vi kan nå skrive liste.add(10); og int tall = liste.get(i);.
  • enum-typer er kommet til. enum i Java er mye mer enn enum i for eksempel C++. En enum-type er en bestemt type klasse. Objektene som tilhører klassen, må settes opp i det klassen deklareres, og det er ikke mulig å lage nye objekter senere. Klassen kan ha medlemmer på tilsvarende måte som andre klasser. Eksempler på enum-typer kan være er ukedager og måneder.
  • Java har fått sin variant av "for-each"-løkken. På en enkel måte kan du nå gjennomløpe tabeller, tabell-lister og andre Collections. Vi kaller løkken for "utvidet for", og den brukes for eksempel slik: for (int tall : tab) sum += tall;

Dette er de viktigste nyhetene. I tillegg vil C-programmerere med glede oppdage at printf()-formateringen nå også kan brukes i Java. Klassen Scanner gjør innlesing av data fra fil enklere, og mange vil også glede seg også over at import-deklarasjonen kan brukes til å importere klassemedlemmer, for eksempel metodene i JOptionPane. Det er også kommet noen forenklinger når det gjelder programmering av grafiske brukergrensesnitt, og vi trenger heller ikke bruke System.exit() lenger for å stoppe et program som bruker JOptionPane-metoder.

Det meste av dette er gode nyheter for profesjonelle programmerere. Imidlertid er det ikke sikkert at det samme gjelder for nybegynnere. Vi har derfor vært forsiktige med å introdusere de nye emnene altfor tidlig. Vi er klar over at utstrakt bruk av for eksempel import static kan gjøre programmer ganske uoversiktlige, og vi har derfor begrenset bruken av dette til JOptionPane. Enum-typer hører tematisk hjemme i kapittel 4, og er derfor plassert der, men en kan hoppe over dette avsnittet ved første gjennomlesning. Det tas ikke i bruk før i kapittel 7. Utvidet for tas heller ikke i bruk før i kapittel 7. Leserne blir kjent med generiske typer via API-et allerede i kapittel 8, men de lager ikke sine egne klasser der de bruker dette før i kapittel 17.

OBS!
I forordet i boka, og også noen andre steder, poengteres det at det er nødvendig med kompilatoropsjon -source 1.5. Dette trengs ikke fra og med beta2-utgaven, som ble lagt ut i sommer.

Vi takker ...

Vi er nå kommet til tredje utgave av boka, og det er etter hvert blitt mange å takke. Støtte og velvilje fra arbeidsgiver og samarbeidet mellom TISIP og Gyldendal Akademisk er en forutsetning for at det skal være mulig å arbeide med dette prosjektet. Gode kolleger, både ved Avdeling for informatikk og e-læring (AITeL) ved Høgskolen i Sør-Trøndelag (HiST) og ved Sun Microsystems, Trondheim, har bidratt med nyttige innspill. Vi har også fått hyggelige og konstruktive tilbakemeldinger fra lærere ved andre høgskoler og universiteter, og navnelisten ville blitt lang om den skulle skrives.

Vi takker også alle studentene, spesielt her ved Høgskolen i Sør-Trøndelag, som stadig har kommet med innspill og kommentarer som har fått oss til å revurdere den pedagogiske, og også den faglige, framstillingen flere steder.

Trondheim, april 2004
Else Lervik (Else.Lervik@hist.no)
Vegard B. Havdal (vegardh@hobbits.no)