Wat is een klasse-array?
Bij objectgeoriënteerde computerprogrammering kan een klassenarray verwijzen naar een van twee soorten gegevensstructuren. Sommige programmeurs gebruiken de term om een standaard matrixgegevenstype te beschrijven dat bestaat uit elementen die objectinstanties zijn van een bepaalde klasse. Het kan ook een ingekapseld object van de klassearray zijn, ook bekend als een wrapperobject, dat wordt gebruikt in plaats van een scalaire array om een verscheidenheid aan methoden beschikbaar te maken voor gebruik bij het beheer van de array. Hoewel er mogelijk meer complexe functionaliteit is, is de wrapper-array-klasse echt niet anders in concept dan wrapper-objecten voor andere scalaire gegevenstypen zoals gehele getallen of tekens. In beide gevallen kan de structuur alleen worden gebruikt in de context van een objectgeoriënteerde programmeertaal die klassen ondersteunt.
De eerste definitie van een klasse-array identificeert het als een standaard array-gegevenstype waarvan wordt verklaard dat het objecten bevat die zijn geïnstantieerd vanuit een specifieke klasse. Dit wordt meestal gedaan bij het vasthouden van een set reeksen objecten, vooral wanneer het maximale aantal objecten bekend is, zodat de array niet met een overmatig aantal elementen wordt aangegeven. De polymorfe mechanismen in objectgeoriënteerd programmeren betekent dat het gebruik van een klassenarray zeer dynamisch kan zijn, omdat het een generieke superklasse kan bevatten, waardoor een verscheidenheid aan subklassen als elementen kan worden bewaard ondanks hun verschillende implementaties. Een complicatie bij het gebruik van een klasse-array kan echter optreden wanneer het aantal elementen onbekend is en ofwel groter wordt dan de gedefinieerde grootte van de array, of erg klein is, waardoor verspilde geheugenruimte wordt toegewezen aan de array. Een oplossing is om objecten van het verzamelingstype te gebruiken, zoals vectoren of arraylists in plaats van een scalaire array waarvan het formaat niet kan worden gewijzigd.
De tweede definitie van een klassenarray is een object dat een scalaire array bevat maar ook een aantal methoden biedt om de array te manipuleren en te wijzigen. Sommige talen implementeren zeer efficiënte sorteer- en zoekalgoritmen in een class array-wrapper. Een ander voordeel van het gebruik van een array die als klasse is geïmplementeerd, is dat de klasse gemakkelijk kan worden doorgegeven en gewijzigd door verschillende functies en methoden, vooral als de base array-klasse afstamt van een generieke objectklasse. De klassenarray is vaak de basis voor andere typen op klassen gebaseerde klassen in een programmeerbibliotheek, zoals een arraylist of een hashtabel. Bovendien kan in sommige talen de array-klasse worden uitgebreid, wat betekent dat een gebruiker enkele basismethoden met meer gespecialiseerde implementaties opnieuw kan definiëren met behoud van de kernfunctionaliteit van de klasse.