Costruttore

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Costruttore (programmazione))
Vai a: navigazione, cerca

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

Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica
Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Comunità
Stampa/esporta
Strumenti
Altre lingue