Hvad er en klassesamling?
I objektorienteret computerprogrammering kan en klassearray henvise til en af to typer datastrukturer. Nogle programmerere bruger udtrykket til at beskrive en standard array-datatype, der består af elementer, der er objektforekomster af en given klasse. Det kan også være et indkapslet objekt i klassearrayet, også kendt som et indpakningsobjekt, der bruges i stedet for et skalar array til at gøre en række metoder tilgængelige til brug i styring af matrixen. Selvom der muligvis er mere kompliceret funktionalitet, er indpakningskategoriklassen virkelig ikke anderledes i koncept end indpakningsobjekter til andre skalardatatyper såsom heltal eller tegn. I begge tilfælde kan strukturen kun bruges inden for rammerne af et objektorienteret programmeringssprog, der understøtter klasser.
Den første definition af en klassearray identificerer den som en standard array-datatype, der erklæres for at indeholde objekter, der er instantieret fra en enkelt specifik klasse. Dette gøres almindeligvis, når du holder en sæt række objekter, især når det maksimale antal objekter er kendt, så arrayet ikke deklareres med en overdreven mængde elementer. De polymorfe mekanismer i objektorienteret programmering betyder, at brugen af en klassesamling kan være meget dynamisk, fordi den kan rumme en generisk superklasse, hvilket tillader, at en række underklasser holdes som elementer på trods af deres forskellige implementeringer. En komplikation, når man bruger en klassearray, kan imidlertid opstå, når antallet af elementer er ukendt og enten vokser sig større end den definerede størrelse af arrayet eller er meget lille, hvilket efterlader spildt hukommelsesområde, der er tildelt arrayet. En løsning er at bruge objekter af samlingstyper, f.eks. Vektorer eller arraylister i stedet for en skalarray, der ikke kan ændres.
Den anden definition af en klassearray er et objekt, der indeholder en skalarray, men også indeholder et antal metoder til at manipulere og ændre matrixen. Nogle sprog implementerer meget effektive sorterings- og søgealgoritmer i en klassearrayindpakning. En anden fordel ved at bruge en matrix, der implementeres som en klasse, er, at klassen let kan videregives og ændres ved forskellige funktioner og metoder, især hvis basearrayklassen stammer fra en generisk objektklasse. Klassearrayet er ofte grundlaget for andre typer array-baserede klasser i et programmeringsbibliotek, såsom en arraylist eller en hash-tabel. Derudover tillader nogle sprog array-klassen at blive udvidet, hvilket betyder, at en bruger kan omdefinere nogle af de grundlæggende metoder med mere specialiserede implementeringer, samtidig med at klassens kernefunktionalitet bevares.