Costruttore
In programmazione orientata agli oggetti, i costruttori sono metodi associati alle classi che hanno lo scopo di creare le istanze e di inizializzarle durante il processo di creazione. 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 |
[modifica] 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 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.
[modifica] Tipologie
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.
[modifica] Linguaggi di programmazione
Quasi tutti i linguaggi di programmazione ad oggetti permettono la definizione dei costruttori.
[modifica] C++
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; }
[modifica] C#
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 ... } }
[modifica] Java
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 ... } }
[modifica] PHP
Il comportamento di PHP varia in base alla versione utilizzata.
[modifica] PHP 4
È sufficiente chiamare il nome del costruttore come quello della classe.
class Point { var $x; var $y; function Point ( $x, $y ) { // ... codice qui ... } }
[modifica] PHP 5
Nella versione 5 il nome della funzione deve essere __constructor
class Point { private $x; private $y; public function __constructor ( $x, $y ) { // ... codice qui ... } }
[modifica] Voci correlate
|
|