I costruttori, in informatica e specificamente nella programmazione orientata agli oggetti, indicano dei metodi associati alle classi che hanno lo scopo di inizializzare le variabili di istanza. La chiamata è effettuata automaticamente all'atto della creazione di un nuovo oggetto di una classe e nella maggior parte dei linguaggi non è possibile chiamarlo manualmente in un secondo tempo.

Utilizzo

In molti linguaggi (per esempio in Java e C ) hanno lo stesso nome della classe a cui appartengono. Come tutti gli altri metodi, i costruttori possono avere dei parametri ed essere definiti in molteplici versioni attraverso l'overloading. Non è ovviamente possibile far ritornare alcun valore dai costruttori, poiché il tipo di ritorno è di default l'oggetto stesso.

Tipi di costruttore

Oltre al semplice costruttore esistono due tipi speciali di costruttori: i default constructor e i copy constructor. I primi sono dei costruttori a cui non viene passato alcun parametro, mentre i copy sono quelli che ricevono come parametro un'altra istanza della stessa classe e quindi copiano tutte le proprietà di quell'istanza.

Costruttore implicito

Il costruttore implicito è un tipo di costruttore predefinito che, come unica istruzione, crea e istanzia le variabili e per definizione non viene descritto nel codice sorgente.

Costruttore privato

Il costruttore privato è un tipo di costruttore non visibile alle altre classi. Per creare l'oggetto viene creato un metodo statico con tipo di ritorno l'oggetto; in questo modo, se alcune condizioni vengono rispettate, viene istanziato l'oggetto, mentre, se le condizioni non vengono soddisfatte, l'oggetto non viene creato. Questo per impedire che vengano creati oggetti non utilizzati o con caratteristiche non idonee.

Linguaggi di programmazione

Quasi tutti i linguaggi di programmazione ad oggetti permettono la definizione dei costruttori.

C

In C è sufficiente dichiarare un metodo con lo stesso nome della classe. Il tipo di ritorno non deve essere inserito.

C#

Anche in C# è sufficiente dichiarare un metodo con lo stesso nome della classe. Il tipo di ritorno non deve essere inserito.

Java

La sintassi in Java, per il costruttore esplicito, è identica a quella di C#.

mentre la funzione del costruttore è equivalente al costruttore esplicito sottostante

e può essere omessa.

PHP

Il comportamento di PHP varia in base alla versione utilizzata.

PHP 4

È sufficiente chiamare il nome del costruttore come quello della classe.

PHP 5 e successivi

Nella versione 5 il nome della funzione deve essere __construct

Note

  • costruttore java, su illuminamente.org.

Bibliografia

  • Fabrizia Scorzoni, Informatica Programmazione in Java, Torino, Loescher, 2009, ISBN 978-88-8433-030-7.

Voci correlate

  • Distruttore (informatica)
  • Metodo (programmazione)
  • Programmazione orientata agli oggetti
  • Overloading

Altri progetti

  • Wikizionario contiene il lemma di dizionario «costruttore»

Collegamenti esterni

  • (EN) Opere riguardanti constructors, su Open Library, Internet Archive.
  • (EN) Denis Howe, constructor, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
  • Costruttori, su DIS UNIROMA. URL consultato il 29 aprile 2014.
  • Programmazione ad oggetti (PDF), su IET UNIPI. URL consultato il 29 aprile 2014.
  • Costruttore C#, su MSDN MICROSOFT. URL consultato il 29 aprile 2014.
  • Costruttore C , su MSDN MICROSOFT. URL consultato il 29 aprile 2014.
  • Regole per la dichiarazione dei costruttori in C , su MSDN MICROSOFT. URL consultato il 29 aprile 2014.

ITLösungen für Unternehmen in der Südostschweiz informatica ag

IT spezialisten, informatiker, softwareentwickler progress personal

Architettura di un computer ed introduzione alla programmazione Basi

Informatik Comsolutions GmbH

informatica AG IT Unternehmen Graubünden