limoentje: ik denk dat jij het concept 'variabelenaam' nog niet helemaal doorhebt
de naam is er alleen maar voor gebruikers om een bepaald geheugengebied aan te geven. Als jij doet
code:
1
| Object henk = new Object (); |
dan is er een variabele
henk, die refereert naar het nieuwe object. Als je daarna doet
dan wijst piet naar hetzelfde object als henk naar toe wijst. De inhoud van henk en piet zijn hier dus hetzelfde, maar henk en piet zijn niet dezelfde variabelen
Geld natuurlijk ook voor arrays:
code:
1
2
| Object[] array = new Object[10];
array[5] = piet; |
Nu wijst array[5] ook naar het object waar piet en henk naar wijzen
Een object wordt pas verwijderd uit het geheugen nadat er geen enkele variabele meer is die naar dat object wijst
En om weer even ontopic te komen, als je een Vector clone'd, dan heb je dus 2 vectoren die allebei naar
dezelfde objecten wijzen (een shallow copy dus)
Als je een deep copy nodig hebt zul je elk element in de ene vector ook nog eens moeten clonen, zodat elke vector zijn eigen kopie heeft