Side 190: To av oppgavene er lite presist formulert.
Nye formuleringer:
5: Vi må bruke delete for å frigjøre lagerplass på heapen
som ikke lenger er i bruk.
6: Parameteroverføring endrer
størrelsen på den delen av stakken som programmet bruker.
Side 246: "Å dele en tekst i ord". Henvisningen skal være til kapittel
8.3, og ikke 8.1.
Side 246-247: Her vises tre kodebiter som eksempler på bruk av split[].
I de to siste eksemplene brukes utvidet for til å løpe gjennom String-tabellene.
Det gjennomgås ikke før i kapittel 13. I det første eksemplet brukes ikke dette,
men det henger likevel igjen noe av koden. De tre kodebitene er
her satt sammen til ett Java-program.
Side 252: Oppgave 2. Siste del av oppgaveteksten krever at du behersker
unntakshåndtering. Det er tema i kapittel 15.
Side 271: Oppgave 1. Beløp i tysk valuta krever bruk av klassen java.text.NumberFormat, se side 679.
Side 288: Brudd på Java-kodestil, linje 14 - programliste 9.1 - bør skiftes
ut med:
if (tabell[i] < tabell[hittilMinst]) {
hittilMinst = i;
}
Side 296: Oppgaven, linje 1: MineTall skal skiftes ut med Tallrekke.
Klassen Tapet mangler final-spesifikasjoner på objektvariabler.
Side 294: Oppgave 1: Metodekallene skal være setPris(), ikke settPris().
Side 314: Nest nederste avsnitt i oppgave 1: Det står at brukeren skal
skrive 1, 2, 3, 4 eller 5 for å velge riktig operasjon. Bruk i stedet
showOptionDialog().
Side 349 og 355: Her er det dessverre manglende samsvar mellom figurer og
kode. Begge stedene er forstavelsen finn- brukt i figurene (hhv. finnStedsnavn()
og finnSted()), mens get- er brukt i programkoden. Hvis vi holder oss til
"regelen" om at get- kun brukes for attributter, og attributter er det som står
øverst i klassediagrammet, så er figurene "riktig" og koden "feil". Det som er
helt klart, er at det bør være samsvar mellom figurer og kode. Se avsnittet om "JavaBean"
som begynner nederst side 170.
Side 391: Linje 1: Ordet "verdiobjekterer" skiftes ut med "verdier".
Side 401: Oppgave 2: Mer aktuelt å "endre" testklienten enn å "utvide" den.
Side 441-442: Feil sett med repetisjonsoppgaver (kap. 13.9) er satt inn i
boka. Her er riktig sett.
Side 456: Oppgave 5. Her er det nok mest korrekt å bruke finnKlassenavn()
ettersom set- og get- bør reserveres til attributter.
Side 461: Oppgave 3: Denne oppgaven er dessverre helt feilplassert. Den hører
hjemme etter kapittel 14.7. Det vil som oppgave 2 side 474. Dessuten skal
oppgave a) og b) byttes om, slik at man skal bruke kopikonstruktøren til å lage
metoden lagKopi().
Side 485-486: Fabrikkmetodene kan returnere objekttypen (Kvadrat), men
det er mer naturlig at de returnerer interfacetypen FigurInterface.
Klientprogrammet forholder seg til FigurInterface, og ikke til Kvadrat.
Fullstendig kildekode. I boka betyr dette
følgende endringer:
Side 485, linje 7 nedenfra: Det står: Kvadrat lagKvadrat(double side) {.
Det skal være: FigurInterface lagKvadrat(double side) {
Side 485, nederste linje: Det står: Kvadrat kvadratet =
fabrikk.lagKvadrat(10);. Det skal være: FigurInterface kvadratet =
fabrikk.lagKvadrat(10);
Ang. teknikken side 486: Da må klassen Kvadrat være public, så her vil
klienten kjenne denne datatypen uansett. Men hensikten er også her å begrense
det offentlige metodeutvalget til det som FigurInterface tilbyr. Ut fra dette
ståstedet, så bør FigurInterface være returtype også i dette tilfellet.
Side 495: Klassen DataLeser må være public (nest nederste linje på siden):
public class DataLeser {
Side 577: Oppgave 1 utgår. Oppgave 2 har dermed nr. 1 i dokumentet med
løsninger.
Side 786: Programliste 23.3, linje 4. Det henvises til figur 23.4. Den finnes
ikke, det skal være figur 23.3.