Lecture overview -- Keyboard shortcut: 'u'  Previous page: Objekter og abstrakte datatyper [Section] -- Keyboard shortcut: 'p'  Next page: Abstrakte datatyper -- 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 7 : 31
Forelæsningsnoter i Objekt-orienteret Programmering
Introduktion til objekt-orienteret programmering
Objekt-begrebet

Vi taler om objekt-orienteret programmering. Derfor er det helt naturligt i udgangspunktet at få styr på, hvad et objekt egentlig er for en størrelse.

Et objekt er en indkapsling af data. Et objekt har identitet, tilstand og adfærd.

Et objekt er en instans af en abstrakt datatype.

En abstrakt datatype programmeres ved brug af en klasse.

Et objekt er en samlet indkapsling af en række data bestanddele. Ydermere bestræber vi os på at skabe disciplineret tilgang til disse data gennem en grænseflade af operationer. Vi kan opfatte operationerne som en integreret del af objektet. Nogle af dataene har måske kun begrænset synlighed og brugbarhed uden for objektet.

Et objekt har identitet, hvilket vil sige at objektet er mere end blot summen af delene. Vi kan derfor se forskel på to objekter med samme databestanddele. Objektets tilstand bæres af de enkelte databestanddele, som typisk kan læses og ændres via operationer (metoder). Operationerne beskriver objektets adfærd.

Vi vender herunder tilbage til både grænseflader og objekt-identitet.

Abstrakte datatyper er datatyper, hvori værdierne tilgås via en mængde af operationer. Alternativet (for konkrete datatyper) er at manipulere værdierne direkte, som de er repræsenteret. Dette skaber store bindinger mellem data-anvendelsen og data-definitionen. Betegnelsen værdi og objekt anvendes her synonymt, omend det ikke altid er tilfældet når vi har med objekt-orienteret programmering at gøre. Mere om dette i en senere lektion.

I de fleste objekt-orienterede programmeringssprog skabes objekter ved at instantiere en klasse. Abstrakte datatyper programmeres altså via klasser.

Klasser og typer forholder sig til hinanden ligesom objekter og værdier. Typer og værdier er betegnelser, som stammer fra den matematiske del af faget. Klasser er en programmeringssproglig konstruktion. Og objekter er instanser af klasser, som findes på programmets køretidspunkt.

Man kan også forestille sig at objekter skabes ved at kopiere allerede eksisterende objekter. Her er vi dog stadig efterladt med spørgsmålet om, hvor det første objekt af en bestemt type kommer fra.

Otte data enheder til venstre organiseres i to objekter til højre. Rammen omkring objekterne symboliserer indkapslingen og delvist objekternes identitet.