Bij het maken van de klasse, met verschillende types van eigenschappen, kan je op een punt komen dat je een array wil gebruiken, waarbij je niet op voorhand weet hoe lang die gaat worden. En je wil dat die bereikbaaar is van buitenaf, m.a.w. de array is public. (bv Objecten die een array bevatten)
Het object dat van de klasse afgeleid is, krijgt “data” te slikken die het in die array voert.
De nodige geheugenruimte voor een object ligt vast door het type van de eigenschappen van het object. Maar met deze array, waaraan steeds elementen kunnen toegevoegd worden dezearray.Add(iets), kan onvoorspelbaar groot worden, wat in tegenstelling is met de afgelijnde grootte van het object.
Ik vermoed dat dit het probleem is dat men aankaart met de vermelding van “embedded arrays”.
Je kan extern een array aanmaken, die je aan het object toespeelt. Het ruimtebeslag gebeurt dan buiten het object.
In een beschrijving van OOP voor Java zag ik dat een array altijd een object is. Dan is de plaats die het in beslag neemt die van de verwijzing naar een object, en is er toch geen probleem?
In een andere (Duitstalige) beschrijving blijkt dat de “embedded array” altijd op voorhand gedefinieerd is, bv
PUBLIC embeddedArray[2, 2] As Integer
De dimensies liggen vast. Hij wordt niet geïnitialiseerd. Het gebruik ervan is uitzonderlijk.
De andere arrays zouden dan “objecten” zijn, en toch gewoon gebruikt kunnen worden.