Skip to main content

Vad är en standardkonstruktör?

En standardkonstruktör är en specialiserad metod som skapar och initialiserar 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 initialisera ett objekt.Den måste antingen inte ha några parametrar, i vilket fall kan det också kallas en nollkonstruktör, eller den måste tilldela standardvärden till alla parametrar som den har möjlighet att ställa in.Vissa datorspråk anger implicit en standardförändringskonstruktör om programmeraren inte anger en konstruktör alls.När någon typ av konstruktör har skrivits, anges inte längre nollkonstruktören, och måste uttryckligen skrivas om det behövs.

För datorspråk som tillåter objektorienterad arv, måste standardkonstruktörer i underklasser vara exakt anslutna till konstruktörer på superklasser.Underklasskonstruktörer måste alltid ringa Superclass -konstruktörer innan de gör något specifikt för underklassen.På vissa språk, som Java Reg ;,, kallar en underklasskonstruktör implicit en SuperClass -standard Nullary Constructor.Om en SuperClass Standard Nullary Constructor inte finns, kan underklassobjektet inte byggas ordentligt.Underklasser kan fortfarande ha endera typen av standardkonstruktör i det här fallet, men en tillgänglig superklasskonstruktör måste kallas korrekt, kanske genom att skicka det standardvärden unika för underklassen.

Den implicita generationen av en standardförändring har fördelen att minska det standardvärden unika för underklassen.Antal metoder som en programmerare måste specificera och dokumentera, men har också nackdelen att eventuellt göra kodunderhåll och förståelse svårare.Vissa programmerare anser att utelämnandet av en standardkonstruktör är dålig praxis, medan andra inte gör det.Det finns inget som förhindrar att en enskild programmerare följer någon av dessa programmeringsmetoder, så inklusive en standardförändringskonstruktör i kod är till stor del ett stilistiskt val från programmerarens sida.Om konstruktören ingår, dikterar de flesta tankeskolor att den ska kommenteras och dokumenteras precis som någon annan konstruktör eller metod skulle vara.

Varje standardkonstruktör kan ha åtkomstmodifierare kopplade till den, vilket gör konstruktören offentlig, skyddad eller privat.Detta ger konstruktörens specifika förmågor baserat på den klass där den anges.En offentlig standardkonstruktör kan användas för att skapa ett nytt objekt från en annan klass, medan en skyddad konstruktör endast kan kallas från sin egen klass och eventuella underklasser.Skyddade standardkonstruktörer ses ofta i en arvshierarki.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.