Lecture overview -- Keyboard shortcut: 'u'  Previous page: Klasseegenskaber [Section] -- Keyboard shortcut: 'p'  Next page: Statiske egenskaber af en klasse 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 19 : 33
Forelæsningsnoter i Objekt-orienteret Programmering
Objekt-orienteret programmering i Java, del 2
Klassevariable og klassemetoder

Vi vil her studere et alternativ til instansvariable og (instans)metoder, som vi hidtil har set på, nemlig de såkaldte klassevariable og klassemetoder. På næste side ser vi på, hvorledes disse begreber understøttes i Java

En klassevariabel er en variabel, som er fælles for alle instanserne af en klasse

En klassemetode er en metode, der opererer på klassen som et objekt.

Vi har defineret en klassevariabel som en variabel, der er fælles for alle instanser af en klasse. Vi kunne, alternativt, definere en klassevariabel som en instansvariabel i klassen af metaobjektet (altså i metaklassen), jf. nedenstående snak om metaobjekter.

  • Er klasser objekter?

    • Hvis ja: Vi siger at der eksisterer et metaobjekt , der repræsenterer klassen

    • Metaobjektet er et naturligt hjemsted for klassevariable

    • Java understøtter metaobjekter via klassen Class samt klasserne i pakken java.lang.reflect

Java skaber en instans c af klassen Class når en bestemt klasse loades. Objektet c repræsenterer således klassen's egenskaber på køretidspunktet.

Man kan spørge: Hvordan får jeg fat i det objekt, som repræsenterer en bestemt klasse. Svaret er: obj.getClass(). Metoden getClass er en af de få metoder i klassen Object (roden i klassehierarkiet). Hvis man kender navnet på klassen (fuldt navn incl. pakke) kan man finde det objekt, som repræsenterer klassen via den statiske metode forName(String) i klassen Class.