Lecture overview -- Keyboard shortcut: 'u'  Previous page: Variabel og konstanterklæringer i Java -- Keyboard shortcut: 'p'  Next page: Leksikalske regler i Java [Section] -- 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 9 : 39
Forelæsningsnoter i Objekt-orienteret Programmering
De ikke objekt-orienterede dele af Java
Hvad med enumeration types i Java?

En Pascal programmør gør ofte god brug af de såkaldte enumeration types. Vi opfrisker her hvad dette dækker over, og vi ser på hvordan man begår sig i Java, hvis man skulle have lyst til at lave en enumeration type.

Java understøtter ikke enumeration types ligesom i Pascal.
Som en tilnærmelse kan man bruge konstanter (static final int).

/user/normark/courses/prog1/prog1-01/sources/noter/includes/karakter.pasEt Pascal program der illustrerer brugen af enumeration types.

Et Pascal program der illustrerer brugen af enumeration types. Programmet - som har været benyttet på datalogikurset på basisuddannelsen - konverterer fra 13 skala karakterer til bestået ikke bestået.

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/KarakterProgram.javaEt tilsvarende Java program.

Et tilsvarende Java program. Vi ser for det første, at vi ikke definerer nye typer i Java. Den eneste måde vi kan lave typer på i Java er gennem klassedefinitioner. Det vil kunne lade sig gøre at definere en Karakter klasse hvorpå der laves en ordning, men det vil nok i simple tilfælde være et 'overkill'. Vi laver en mængde af konstanter, hvis værdier er naturlige tal. I bund og grund er enumeration konstanterne blot symbolske navne for udvalgte heltal. Den naturlige ordning på tallene giver en ordning på karaktererne. I Pascal programmet kan man checke grænser automatisk. Dette kan ikke lade sig gøre i Java programmet, idet alle operationer arbejder på typen int, og ikke simpel_karakter eller tal_karakter. Det betyder i praksis at vi burde checke eksplicit i de to procedurer om parametrene giver mening. (Dette har vi ikke gjort her, fordi vi er lidt dovne, og fordi vi ønsker at holde programmerne så sammenlignelige som muligt overfladisk set).