Constructor (IT)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Constructorii , în informatică și în special în programarea orientată pe obiecte , indică metode asociate cu clasele care au scopul de a inițializa variabilele de instanță. Apelul se face automat atunci când este creat un nou obiect al unei clase și în majoritatea limbilor nu este posibil să-l apelați manual mai târziu.

Utilizare

În multe limbi (de exemplu în Java și C ++ ) au același nume cu clasa din care fac parte. La fel ca toate celelalte metode, constructorii pot avea parametri și pot fi definiți în mai multe versiuni prin supraîncărcare . Evident, nu este posibil să se returneze nicio valoare de la constructori, deoarece tipul de returnare este în mod implicit obiectul în sine.

Tipuri de constructor

Pe lângă producătorul simplu, există două tipuri speciale de constructori: constructorul implicit sau constructorul implicit și constructorul de copiere sau constructorii de copiere. Primii sunt constructori la care nu sunt trecuți parametri, în timp ce copiile sunt cele care iau ca parametru o altă instanță din aceeași clasă și apoi copiază toate proprietățile acelei instanțe.

Constructor implicit

Constructorul implicit este un tip de constructor predefinit care, ca o singură declarație, creează și instanțiază variabile și, prin definiție, nu este descris în codul sursă .

Constructor privat

Constructorul privat este un tip de constructor care nu este vizibil pentru alte clase . Pentru a crea obiectul, se creează o metodă statică cu tipul de returnare a obiectului; în acest fel, dacă sunt îndeplinite unele condiții, obiectul este instanțiat, în timp ce, dacă condițiile nu sunt îndeplinite, obiectul nu este creat. Aceasta este pentru a preveni crearea obiectelor neutilizate sau a obiectelor cu caracteristici inadecvate.

Limbaje de programare

Aproape toate limbajele de programare orientate pe obiecte permit definirea constructorilor.

C ++

În C ++ este suficient să declarați o metodă cu același nume ca și clasa. Tipul de returnare nu trebuie introdus.

 clasa Punct
{
public :
   Punct (); // Constructor implicit
   Punct ( int x , int y ); // Constructor generic
   Punct ( Punct și altele ); // Constructor copiere
   // ... alte metode ...
privat :
   int x ;
   int y ;
}

C #

Chiar și în C # este suficient să se declare o metodă cu același nume ca și clasa. Tipul de returnare nu trebuie introdus.

 public class Point
{
   plutitor privat x ;
   plutitor privat y ;
   public Point () // Constructor implicit
   { // ... cod aici ...
   }
   public Point ( Point otherPoint ) // Constructor copiere
   { // ... cod aici ...
   }
   punct public ( float x , float y ) // Constructor generic
   { // ... cod aici ...
   }
}

Java

Sintaxa în java, pentru constructorul explicit, este identică cu cea a lui C # .

 public class Point
{
   plutitor privat x ;
   plutitor privat y ;
   public Point () // Constructor implicit
   { // ... cod aici ...
   }
   public Point ( Point otherPoint ) // Constructor copiere
   { // ... cod aici ...
   }
   punct public ( float x , float y ) // Constructor generic
   { // ... cod aici ...
   }
}

în timp ce funcția constructor este echivalentă cu constructorul explicit subiacent

 public class Point
{
   plutitor privat x ;
   punct public ()
   { // aici rămâne fără cod
   }
}

și poate fi omis.

PHP

Comportamentul PHP variază în funcție de versiunea utilizată.

PHP 4

Doar numiți numele constructorului ca numele clasei.

 clasa Punct
{
   var $ x ;
   var $ y ;
   funcție Punct ( $ x , $ y )
   {
        // ... cod aici ...
   }
}

PHP 5 și versiuni ulterioare

În versiunea 5 numele funcției trebuie să fie __construct

 clasa Punct
{
   privat $ x ;
   privat $ y ;
   funcție publică __construct ( $ x , $ y )
   {
        // ... cod aici ...
   }
}

Notă

Bibliografie

  • Fabrizia Scorzoni, Computer Science Programming in Java , Turin, Loescher, 2009, ISBN 978-88-8433-030-7 .

Elemente conexe

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT