Lecture overview -- Keyboard shortcut: 'u'  Previous page: Karakteristik af arrays -- Keyboard shortcut: 'p'  Next page: Eksempler på arrays 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  Page 4 : 28
Forelæsningsnoter i Objekt-orienteret Programmering
Arrays og Lister
Arrays i Java

Programmeringssproget Java har et iboende array begreb. Et array er et objekt, men der er særlig, sproglig understøttelse af array objekter i Java. Dette udmønter sig bl.a. i særlige syntaktiske konstruktioner, når man programmerer med Java's iboende array begreb

ElementType[] arrayNavn = new ElementType [SIZE]

Et typisk eksempel på erklæring af et array og umiddelbar array instantiering

  • Arrays typeangives ved brug af betegnelsen ElementType[]

  • Arrays opfører sig som objekter

    • Arrays allokeres dynamisk ved brug af new operatoren

Man kunne vælge at sige at arrays er objekter. Sandheden er nok snarere, at Java designerne forsøger at få arrays til at ligne objekter. Men et array 'objekt' er ikke en instans af en Array klasse. Og sproget omgærer arrays med tilstrækkeligt meget special syntaks til at man kan se, at arrays er specielle objekter.

Hvis arrays var normale objekter, altså instanser af klassen array, ville instantieringen se således ud:

    Array arrayNavn = new Array(MAX_LIMIT);
Vi ser, at vi ikke med denne syntaks kan angive elementtypen af array'et. Dette er naturligvis et problem! Hvad vi generelt mangler er muligheden for at typeparametrisere klassen Array med en elementtype. I nogle sprog - såsom C++ kalder man dette for templates. Nogle sprog har mulighed for en sådan typeparametrisering. Java vil givetvis blive udvidet med typeparametriserede klasser på et tidspunkt.

  • Den øvre grænse angives med special syntaks: new ElementType[MAX_LIMIT]

    • Det egentlige indeksinterval i et Java array går fra og med 0 til og med MAX_LIMIT-1

  • Der findes ingen Array klasse i JDK biblioteket

  • Indeks intervallet af et array kan ikke ændres efter array objektet er allokeret

Java's iboende arrays kan opfattes som en effektiv, lavniveau facilitet der kan anvendes til at implementere array-lignende abstrakte datatyper på et højere niveau