Costruttore
I costruttori, in informatica e specificamente nella programmazione orientata agli oggetti, indicano dei metodi di programmazione 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.
Indice |
Utilizzo [modifica]
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 e essere definiti in molteplici versioni attraverso l'overloading. Non è ovviamente possibile ritornare alcun valore dai costruttori, perché il tipo ritornato è di default l'oggetto stesso.
Tipologie [modifica]
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.
Linguaggi di programmazione [modifica]
Quasi tutti i linguaggi di programmazione ad oggetti permettono la definizione dei costruttori.
C++ [modifica]
In C++ è sufficiente dichiarare un metodo con lo stesso nome della classe. Il tipo di ritorno non deve essere inserito.
class Point { public: Point(); // Costruttore di default Point(int x,int y); // Costruttore generico Point (Point &other); // Costruttore di copia // ... altri metodi ... private: int x; int y; }
C# [modifica]
Anche in C# è sufficiente dichiarare un metodo con lo stesso nome della classe. Il tipo di ritorno non deve essere inserito.
public class Punto { private float x; private float y; public Punto() // Costruttore di default { // ... codice qui ... } public Punto(Punto altroPunto) // Costruttore di copia { // ... codice qui ... } public Punto(float x, float y) // Costruttore generico { // ... codice qui ... } }
Java [modifica]
La sintassi in java è identica a quella di C#.
public class Punto { private float x; private float y; public Punto() // Costruttore di default { // ... codice qui ... } public Punto(Punto altroPunto) // Costruttore di copia { // ... codice qui ... } public Punto(float x, float y) // Costruttore generico { // ... codice qui ... } }
PHP [modifica]
Il comportamento di PHP varia in base alla versione utilizzata.
PHP 4 [modifica]
È sufficiente chiamare il nome del costruttore come quello della classe.
class Point { var $x; var $y; function Point ( $x, $y ) { // ... codice qui ... } }
PHP 5 [modifica]
Nella versione 5 il nome della funzione deve essere __constructor
class Point { private $x; private $y; public function __constructor ( $x, $y ) { // ... codice qui ... } }
Voci correlate [modifica]
- Distruttore (informatica)
- Metodo (programmazione)
- Programmazione
- Programmazione orientata agli oggetti
|
|