Wat is een standaardconstructor?
Een standaardconstructor is een gespecialiseerde methode die een object maakt en initialiseert in objectgeoriënteerd programmeren. Er zijn meerdere soorten constructors, maar een standaardconstructor moet aan een van twee specifieke criteria voldoen, naast het maken en initialiseren van een object. Het moet ofwel geen parameters hebben, in welk geval het ook een nulconstructor kan worden genoemd, of het moet standaardwaarden toewijzen aan alle parameters die het kan instellen. Sommige computertalen geven impliciet een standaard nulconstructie aan als de programmeur helemaal geen constructor opgeeft. Zodra een type constructor is geschreven, wordt de standaard nullary constructor niet meer opgegeven en moet deze indien nodig expliciet worden geschreven.
Voor computertalen die objectgeoriënteerde overerving toestaan, moeten standaardconstructors in subklassen precies worden verbonden met constructors in superklassen. Subklasse constructors moeten altijd superklasse constructors aanroepen voordat ze iets specifieks voor de subklasse doen. In sommige talen, zoals Java®, roept een constructeur van een subklasse impliciet een standaard nul-constructor van een superklasse aan. Als een standaard nul-constructor van de superklasse niet bestaat, kan het subklasseobject niet goed worden gebouwd. Subklassen kunnen in dit geval nog steeds beide typen standaardconstructor hebben, maar een beschikbare constructeur van de superklasse moet correct worden aangeroepen, misschien door deze standaardwaarden door te geven die uniek zijn voor de subklasse.
Het impliciet genereren van een standaard null-constructor heeft het voordeel dat het aantal methoden dat een programmeur moet specificeren en documenteren, wordt verminderd, maar heeft ook het nadeel dat het mogelijk is om codeonderhoud en -begrip moeilijker te maken. Sommige programmeurs beschouwen het weglaten van een standaardconstructor als een slechte gewoonte, terwijl anderen dat niet doen. Er is niets dat een individuele programmeur belet zich aan een van deze programmeermethoden te houden, dus het opnemen van een standaard nulconstructor in code is grotendeels een stilistische keuze van de kant van de programmeur. Als de constructor wordt opgenomen, dicteren de meeste denkrichtingen dat het moet worden becommentarieerd en gedocumenteerd, net als elke andere constructor of methode.
Aan elke standaardconstructor kunnen toegangsmodificaties zijn gekoppeld, waardoor de constructor openbaar, beveiligd of privé is. Dit geeft de constructor specifieke vaardigheden op basis van de klasse waarin het is opgegeven. Een openbare standaardconstructor kan worden gebruikt om een nieuw object van een andere klasse te maken, terwijl een beschermde constructor alleen vanuit zijn eigen klasse en eventuele subklassen kan worden aangeroepen. Beschermde standaardconstructors worden vaak gezien in een overervingshiërarchie. Particuliere constructeurs worden meestal alleen gebruikt in zelfstandige klassen, waar een soort fabrieksmethode beschikbaar is om het te noemen, in plaats van de programmeur.