Lecture overview -- Keyboard shortcut: 'u'  Previous page: Objekt-begrebet -- Keyboard shortcut: 'p'  Next page: Indkapsling, information hiding og grænseflade -- 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 8 : 31
Forelæsningsnoter i Objekt-orienteret Programmering
Introduktion til objekt-orienteret programmering
Abstrakte datatyper

Betegnelsen 'abstrakte datatyper' stammer i overvejende grad fra den matematisk/teoretiske del af datalogi. Når vi arbejder med abstrakte datatyper ønsker vi at afskærme os fra viden om den konkrete og detaljerede datarepræsentation. Alle aflæsninger og ændringer af data sker gennem en mængde af operationer. Abstrakte datatyper udgør en af grundpillerne i objekt-orienteret programmering.

En abstrakt datatype er en mængde af værdier eller objekter samt en tilhørende mængde af operationer på disse

En datatype defineres ofte som en mængde af værdier. I en abstrakt datatype fokuserer vi ikke på disse værdier's datarepræsentation, men på hvordan vi manipulerer (opretter og ændrer) på disse. Dette sker gennem operationerne.

En mængde af bankkonti med operationer til indsættelse, hævning, rentetilskrivning og pengeoverførsel er et hverdagseksempel på en abstrakt datatype

Programmeringsmæssigt er det en vigtig observation, at brugen af en abstrakt datatype bankkonto ikke inkluderer detaljer om hvordan bankkonto data lagres og repræsenteres. Når vi på et tidspunkt skal programmere en bankkonto har vi frie hænder til at vælge en hensigtsmæssig repræsentation. Valget påvirke ikke grænsefladen af den abstrakte datatype, men kun typens implementation.

Mængden af heltal med de velkendte aritmetiske operationer er et matematisk eksempel på en abstrakt datatype

Vi ved alle, at tal i en computer repræsenteres i det binære talsystem. Men vi er heldigvis også vant til ikke at tænke på disse detaljer, når vi arbejder med tal. Vi fristes f.eks. aldrig til at aflæse 'mindst betydende bit i et heltal'; Vi anvender en operation, som aflæser hvorvidt tallet er lige eller ulige. Tallenes nytte for os afspejler sig altså i de operationer, som vi kan udføre på dem. Vi kan med rette sige, at vi tænker på heltal som en abstrakt datatype. Lad dette være et forbillede for, hvordan vi fremover ønsker at programmere i det objekt-orienterede paradigme

En abstrakt datatype afskærmer og beskytter den konkrete repræsentation af data til fordel for en datatilgang på et højere abstraktionsniveau.