Hva er en standardkonstruktør?
En standardkonstruktør er en spesialisert metode som oppretter og initialiserer et objekt i objektorientert programmering. Det er flere typer konstruktører, men en standardkonstruktør må oppfylle ett av to spesifikke kriterier, i tillegg til å opprette og initialisere et objekt. Den må enten ikke ha noen parametere, i så fall kan den også kalles en nullkonstruktør, eller den må tilordne standardverdier til alle parametere den har muligheten til å stille inn. Noen dataspråk spesifiserer implisitt en standard nullkonstruktør hvis programmereren ikke spesifiserer en konstruktør i det hele tatt. Når en hvilken som helst type konstruktør er skrevet, er standard nullkonstruktøren ikke lenger spesifisert, og må skrives eksplisitt hvis nødvendig.
For dataspråk som tillater objektorientert arv, må standardkonstruktører i underklasser være nøyaktig koblet til konstruktører i superklasser. Underklasse-konstruktører må alltid ringe superklasse-konstruktører før de gjør noe spesifikt for underklassen. På noen språk, som Java®, kaller en underklasse-konstruktor implisitt en superklasse standard nullkonstruktør. Hvis en superklasse standard nullkonstruktør ikke eksisterer, kan ikke underklasseobjektet bygges ordentlig. Underklasser kan fortsatt ha en hvilken som helst type standardkonstruktør i dette tilfellet, men en tilgjengelig superklassekonstruktør må kalles riktig, kanskje ved å gi den standardverdier som er unike for underklassen.
Den implisitte generasjonen av en standard nullkonstruktor har fordelen med å redusere antallet metoder en programmerer må spesifisere og dokumentere, men har også ulempen med å muligens vanskeliggjøre kodevedlikehold og forståelse. Noen programmerere anser utelatelsen av en standardkonstruktør for å være dårlig praksis, mens andre ikke gjør det. Det er ingenting som forhindrer en individuell programmerer fra å følge noen av disse programmeringsmetodene, så å inkludere en standard nullkonstruktør i kode er stort sett et stilistisk valg fra programmererens side. Hvis konstruktøren er inkludert, tilsier de fleste tankeskoler at den skal kommenteres og dokumenteres på samme måte som enhver annen konstruktør eller metode.
Alle standardkonstruktører kan ha tilgangsmodifiserere festet til den, noe som gjør konstruktøren offentlig, beskyttet eller privat. Dette gir konstruktøren spesifikke evner basert på klassen den er spesifisert i. En offentlig standardkonstruktør kan brukes til å opprette et nytt objekt fra en annen klasse, mens en beskyttet konstruktør bare kan kalles fra sin egen klasse og eventuelle underklasser. Beskyttede standardkonstruktører sees ofte i et arvelighetshierarki. Private konstruktører brukes vanligvis bare i selvstendige klasser, der en type fabrikkmetode er tilgjengelig for å kalle det, i stedet for programmereren.