Skip to main content

Cos'è un costruttore predefinito?

Un costruttore predefinito è un metodo specializzato che crea e inizializza un oggetto nella programmazione orientata agli oggetti.Esistono più tipi di costruttori, ma un costruttore predefinito deve soddisfare uno dei due criteri specifici, oltre a creare e inizializzare un oggetto.Non deve avere parametri, nel qual caso potrebbe anche essere chiamato un costruttore Nullary, oppure deve assegnare valori predefiniti a tutti i parametri che ha la possibilità di impostare.Alcuni linguaggi di computer specificano implicitamente un costruttore noullario predefinito se il programmatore non specifica affatto un costruttore.Una volta scritto qualsiasi tipo di costruttore, il costruttore noullario predefinito non viene più specificato e deve essere scritto esplicitamente se necessario.

Per i linguaggi di computer che consentono l'eredità orientata agli oggetti, i costruttori predefiniti nelle sottoclassi devono essere precisamente collegati ai costruttori in superclassi.I costruttori della sottoclasse devono sempre chiamare i costruttori di superclasse prima di fare qualcosa di specifico per la sottoclasse.In alcune lingue, come Java , un costruttore sottoclasse chiama implicitamente un costruttore nobile predefinito superclasse.Se non esiste un costruttore noullario predefinito superclasse, l'oggetto sottoclasse non può essere costruito correttamente.Le sottoclassi possono ancora avere entrambi i tipi di costruttore predefinito in questo caso, ma un costruttore di superclasse disponibile deve essere chiamato correttamente, forse passando i valori predefiniti unici alla sottoclasse.

La generazione implicita di un costruttore Nullary ha il vantaggio di ridurre ilNumero di metodi Un programmatore deve specificare e documentare, ma ha anche lo svantaggio di rendere più difficile la manutenzione e la comprensione del codice.Alcuni programmatori considerano l'omissione di un costruttore predefinito come una cattiva pratica, mentre altri no.Non c'è nulla che impedisca a un singolo programmatore di aderire a uno di questi metodi di programmazione, quindi incluso un costruttore noullario predefinito nel codice è in gran parte una scelta stilistica da parte del programmatore.Se il costruttore è incluso, la maggior parte delle scuole di pensiero impone che dovrebbe essere commentato e documentato proprio come qualsiasi altro costruttore o metodo sarebbe.

Qualsiasi costruttore predefinito può avere modificatori di accesso ad esso collegati, rendendo il costruttore pubblico, protetto o privato.Ciò fornisce le capacità specifiche del costruttore in base alla classe in cui è specificata.Un costruttore predefinito pubblico può essere utilizzato per creare un nuovo oggetto da un'altra classe, mentre un costruttore protetto può essere chiamato solo dalla propria classe e da eventuali sottoclassi.I costruttori predefiniti protetti sono visti spesso in una gerarchia ereditaria.I costruttori privati sono generalmente impiegati solo in classi autonome, in cui è disponibile un tipo di metodo di fabbrica per chiamarlo, piuttosto che il programmatore.