Vad är en standardkonstruktör?
En standardkonstruktör är en specialiserad metod som skapar och initierar ett objekt i objektorienterad programmering. Det finns flera typer av konstruktörer, men en standardkonstruktör måste uppfylla ett av två specifika kriterier, förutom att skapa och initiera ett objekt. Den får antingen inte ha några parametrar, i vilket fall den också kan kallas en nullkonstruktör, eller så måste den tilldela standardvärden till alla parametrar som den har möjlighet att ställa in. Vissa datorspråk anger implicit en standard nollkonstruktör om programmeraren inte anger någon konstruktör alls. När någon typ av konstruktör är skriven anges inte längre standardkonstruktören och måste skrivas uttryckligen vid behov.
För datorspråk som tillåter objektorienterad arv måste standardkonstruktörer i underklasser vara exakt anslutna till konstruktörer i superklass. Underklasskonstruktörer måste alltid ringa superklasskonstruktörer innan de gör något specifikt för underklassen. På vissa språk, som Java®, kallar en underklasskonstruktör implicit en superklass-standard nullkonstruktör. Om det inte finns en standardklass nullkonstruktör, kan underklassobjektet inte byggas ordentligt. Underklasser kan fortfarande ha någon typ av standardkonstruktör i detta fall, men en tillgänglig superklasskonstruktör måste kallas korrekt, kanske genom att lämna standardvärden unika för underklassen.
Den implicita generationen av en standard nollkonstruktor har fördelen att minska antalet metoder som en programmerare måste specificera och dokumentera, men har också nackdelen att möjligen göra svårare att underhålla och underhålla kod. Vissa programmerare anser utelämnandet av en standardkonstruktör vara dålig praxis, medan andra inte gör det. Det finns inget som hindrar en enskild programmerare från att följa någon av dessa programmeringsmetoder, så att inkludera en standard-nollkonstruktör i kod är till stor del ett stilistiskt val från programmerarens sida. Om konstruktören ingår, dikterar de flesta tankekurser att den ska kommenteras och dokumenteras precis som någon annan konstruktör eller metod skulle vara.
Alla standardkonstruktörer kan ha åtkomstmodifierare anslutna till den, vilket gör konstruktören offentlig, skyddad eller privat. Detta ger konstruktören specifika förmågor baserat på klassen i vilken den är specificerad. En offentlig standardkonstruktör kan användas för att skapa ett nytt objekt från en annan klass, medan en skyddad konstruktör bara kan kallas från sin egen klass och alla underklasser. Skyddade standardkonstruktorer ses ofta i en arvhierarki. Privata konstruktörer används vanligtvis endast i fristående klasser, där någon typ av fabriksmetod är tillgänglig för att kalla det, snarare än programmeraren.