Hva er en klassesamling?
I objektorientert dataprogrammering kan en klassesamling referere til en av to typer datastrukturer. Noen programmerere bruker begrepet for å beskrive en standard array-datatype som består av elementer som er objektforekomster av en gitt klasse. Det kan også være et innkapslet objekt av klassearrayen, også kjent som et innpakningsobjekt, brukt i stedet for en skalærgruppe for å gjøre en rekke metoder tilgjengelige for bruk i styring av matrisen. Selv om det kan være mer kompleks funksjonalitet, er innpakningsklasseklassen egentlig ikke noe annerledes enn konseptobjekter for andre skalaldatatyper som heltall eller tegn. I begge tilfeller kan strukturen bare brukes i sammenheng med et objektorientert programmeringsspråk som støtter klasser.
Den første definisjonen av en klassesamling identifiserer den som en standard array-datatype som er erklært å inneholde objekter som er direkte direkte fra en bestemt klasse. Dette gjør man ofte når man holder en serie objekter, spesielt når det er kjent maksimalt antall objekter, slik at matrisen ikke blir deklarert med en for stor mengde elementer. De polymorfe mekanismene i objektorientert programmering betyr at bruken av en klassesamling kan være veldig dynamisk, fordi den kan inneholde en generisk superklasse, slik at en rekke underklasser kan holdes som elementer til tross for deres varierende implementeringer. En komplikasjon når du bruker en klassesamling, kan imidlertid oppstå når antall elementer er ukjent og enten vokser seg større enn den definerte størrelsen på arrayen, eller er veldig liten, og etterlater bortkastet minneplass som er tildelt matrisen. En løsning er å bruke gjenstander av samlingstype som for eksempel vektorer eller arraylister i stedet for en skalærgruppe som ikke kan endres.
Den andre definisjonen av en klassesamling er et objekt som inneholder en skalarray, men gir også en rekke metoder for å manipulere og endre arrayen. Noen språk implementerer veldig effektive sorterings- og søkealgoritmer i et klassearrayinnpakning. En annen fordel ved å bruke en matrise som implementeres som en klasse, er at klassen lett kan bestås og endres ved forskjellige funksjoner og metoder, spesielt hvis basearrayklassen er nedstammet fra en generisk objektklasse. Klassearrayet er ofte grunnlaget for andre typer matrisebaserte klasser i et programmeringsbibliotek, for eksempel en arraylist eller et hasjbord. I tillegg tillater noen språk rekkeklassen å utvides, noe som betyr at en bruker kan omdefinere noen av de grunnleggende metodene med mer spesialiserte implementeringer, samtidig som kjernefunksjonaliteten til klassen bevares.