Kaj je privzeti konstruktor?

Privzeti konstruktor je specializirana metoda, ki ustvari in inicializira objekt v objektno usmerjenem programiranju. Obstaja več vrst konstruktorjev, vendar mora privzeti konstruktor poleg ustvarjanja in inicializacije predmeta izpolnjevati enega od dveh posebnih meril. Ali ne sme imeti nobenih parametrov, v tem primeru bi ga lahko imenovali tudi ničelni konstruktor, ali pa mora dodeliti privzete vrednosti vsem parametrom, ki jih lahko nastavi. Nekateri računalniški jeziki implicitno določajo privzeti ničelni konstruktor, če programer sploh ne poda konstruktorja. Ko je kateri koli tip konstruktorja napisan, privzeti ničelni konstruktor ni več podan in ga je treba po potrebi izrecno zapisati.

Za računalniške jezike, ki omogočajo objektno usmerjeno dedovanje, morajo biti privzeti konstruktorji v podrazredih natančno povezani s konstruktorji v nadrazredih. Konstruktorji podrazredov morajo vedno poklicati konstruktorje nadrazreda, preden naredijo karkoli specifičnega za podrazred. V nekaterih jezikih, kot je Java®, konstruktor podrazreda implicitno pokliče privzeti ničelni konstruktor nadrazreda. Če privzeti ničelni konstruktor nadrazreda ne obstaja, objekta podrazreda ni mogoče pravilno zgraditi. Podrazredi imajo lahko v tem primeru še vedno katero koli vrsto privzetega konstruktorja, vendar je treba razpoložljivi konstruktor nadrazreda poklicati pravilno, morda tako, da mu posredujete privzete vrednosti, edinstvene za podrazred.

Implicitno generiranje privzetega ničelnega konstruktorja ima prednost zmanjšanja števila metod, ki jih mora programer navesti in dokumentirati, vendar ima tudi pomanjkljivost, da lahko oteži vzdrževanje in razumevanje kode. Nekateri programerji menijo, da je opustitev privzetega konstruktorja slaba praksa, drugi pa ne. Nič ne preprečuje posameznemu programerju, da bi se držal katere od teh metod programiranja, zato je vključitev privzetega ničelnega konstruktorja v kodo v veliki meri stilistična izbira programerja. Če je konstruktor vključen, večina miselnih šol narekuje, da ga je treba komentirati in dokumentirati tako kot kateri koli drugi konstruktor ali metodo.

Vsak privzeti konstruktor ima lahko priložene modifikatorje dostopa, zaradi česar je konstruktor javen, zaščiten ali zaseben. To daje konstruktorju posebne sposobnosti glede na razred, v katerem je določen. Javni privzeti konstruktor se lahko uporabi za ustvarjanje novega predmeta iz drugega razreda, medtem ko je zaščiteni konstruktor mogoče poklicati samo iz njegovega lastnega razreda in vseh podrazredov. Zaščiteni privzeti konstruktorji so pogosto vidni v hierarhiji dedovanja. Zasebni konstruktorji se običajno uporabljajo samo v samozadostnih razredih, kjer je na voljo neka vrsta tovarniške metode za njeno klicanje, ne pa programer.