"Hallo, Amigo! Nu ga ik je vertellen hoe objecten worden gemaakt."
"Wat is er zo ingewikkeld aan, oom Rishi? Je schrijft new en de klassenaam, geeft de juiste constructor aan en je bent klaar!"
"Dat is waar. Maar wat gebeurt er in het object als je dat doet?"
"Wat gebeurt er?"
"Dit is wat er gebeurt: het object wordt in verschillende fasen gemaakt."
1) Eerst wordt er geheugen toegewezen voor alle lidvariabelen van de klasse.
2) Vervolgens wordt de basisklasse geïnitialiseerd.
3) Vervolgens krijgen alle variabelen waarden toegewezen, als die zijn opgegeven.
4) Ten slotte wordt de constructor aangeroepen.
"Het ziet er niet heel moeilijk uit: eerst de variabelen, dan de constructor."
"Laten we eens kijken hoe dit werkt in een voorbeeld met twee klassen:"
Code | Beschrijving |
---|---|
|
Declareer twee klassen: Pet(pet) en Cat(cat).
In de klasse Cat zien we een expliciete aanroep naar de constructor van de basisklasse . Dit is wat er gebeurt nadat het geheugen is toegewezen: Vervolgens wordt de Cat-klasse geïnitialiseerd. |
|
"Dat is een beetje verwarrend. Waarom is het zo ingewikkeld?"
"Het is eigenlijk niet moeilijk als je weet wat er echt aan de hand is:"
Als een klasse geen constructors heeft, wordt er automatisch een gemaakt.
Standaard constructeur | |
---|---|
|
|
Als u de constructor van de basisklasse niet aanroept, wordt deze automatisch aangeroepen.
Aanroep van de constructor van de basisklasse | |
---|---|
|
|
|
|
Lidvariabelen worden geïnitialiseerd in de constructor.
Initialisatie van lidvariabelen | |
---|---|
|
|
Wat gebeurt er echt | |
---|---|
|
|
"Nu is het veel duidelijker: eerst de basisklasse, dan variabelen buiten de constructor, dan de constructorcode."
"Goed gedaan, Amigo! Dat is het!"
GO TO FULL VERSION