Lecture overview -- Keyboard shortcut: 'u'  Previous page: Udførelse [Section] -- Keyboard shortcut: 'p'  Next page: Objekt-interaktion -- 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 23 : 33
Forelæsningsnoter i Objekt-orienteret Programmering
Objekt-orienteret programmering i Java, del 2
Programbeskrivelse kontra programudførelse

Det er meget vigtigt at holde programbeskrivelsen (klasserne) adskilt fra programudførelsen (objekter, med indbyrdes referencer). I nogle sprog er klasser også objekter, som kan manipuleres af et sæt af operationer. Disse kaldes for metaobjekter. Smalltalk og CLOS er eksempler på sådanne sprog. Når klasser også er objekter, kan man spørge sig selv, hvilke klasser klasse-objekterne er instanser af? Normalt kalder man klasser, hvis instanser repræsenterer klasser, for metaklasser. Operationerne i disse metaklasser tillader, at man undersøger og påvirker aspekter af programmet selv. Med en passende organisering af programmeringsomgivelsen befordrer metaobjekterne at et program kan tilgå information om sig selv. Dette kaldes undertiden for refleksion. Dette er imidlertid et videregående emne, som ikke berøres yderligere på dette kursus

Statisk programbeskrivelse som det fremgår af programteksten

    Klasser med instansvariable og metoder

Dynamisk programudførelse som det forekommer i maskinen, når programmet kører

    Objekter med instansvariable, som indeholder værdier og referencer til objekter

At programbeskrivelsen omtales som statisk betyder, at det er relativ uforanderlig. Dette skal naturligvis ses i forhold til programudførelsen. Programbeskrivelsen er dog foranderlig i den forstand at programmøren via værktøj i programmeringsomgivelsen kan ændre den

Programudførelsen's elementer ændrer sig hele tiden, som en funktion af tiden.

Objekter og referencer udgør et netværk, som udvikler sig i takt med at programudførelsen skrider frem.

På ethvert tidspunkt er netop et objekt 'det nuværende objekt'

Det nuværende objekt kan i et Java program refereres via nøgleordet this