Lecture overview -- Keyboard shortcut: 'u'  Previous page: Konstruktorer i klassen <kbd>Point</kbd> -- Keyboard shortcut: 'p'  Next page: Tekststrenge i Java -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 18 : 27
Forelæsningsnoter i Objekt-orienteret Programmering
Objekt-orienteret programmering i Java, del 1
Værdier i forhold til objekter

Man kan være fristet til at tænke på 'alt som objekter'. Her vil vi introducere en skelnen mellem 'værdier' og 'objekter', som er ganske vigtig når man programmerer i Java.

En værdi er et dataelement uden identitet, og uden mulighed for at ændre tilstand

Et objekt er et indkapslet dataelement med identitet, tilstand og adfærd

Værdier er typisk repræsentationer af matematiske størrelse, f.eks. tal, sandhedsværdier og tegn. Vi kan ikke ændre et tal, f.eks. 7, til at være et andet tal.

Et objekt er repræsenteret af dets instansvariable. Objektet har identitet uafhængig af instansvariablenes værdier. Når først objektet er skabt er det unik igennem hele dets levetid, og der vil aldrig blive skabt et objekt med samme identitet igen! Objektets tilstand kan ændres uden på nogen måde at ændre ved objektets identitet. Objektets adfærd udgøres af de metoder, der er defineret i objektet's klasse

I objekt-orienteret programmering er det muligt at simulere objekter, der opfører sig som værdier

Når vi ønsker at opfatte et objekter som en værdi må vi forhindre mutation (tilstandsforandring) af objektet. Når eller hvis vi forsøger at ændret på et sådan objekts tilstand vil det afstedkomme skabelsen af et nyt objekt, i stedet for forandringen af det eksisterende objekt. Et andet aspekt af simuleringen kan være eksplicit at forhindre skabelsen af to objekter, der repræsenterer den samme værdi. Dette kan ske ved umiddelbar før instantieringen af et objekt at checke hvorvidt vi allerede én gang har skabt et objekt med de 'samme' egenskaber

I Java tilhører værdierne de primitive typer byte, short, int, long, float, double, boolean og char

Der findes 'Java wrapper classes' via hvilke værdier af de primitive typer kan pakkes ind i et objekt