Sunteți pe pagina 1din 11

Tipuri de contructori

Boiciuc Roman
În programarea orientată pe obiecte, atunci când creați obiecte din anumite clase,
este uneori necesar să apelați câteva metode speciale ale acelor clase, cunoscute
sub numele de constructori.
Constructorul unei clase este o pseudo-metodă care nu returnează un tip, are același
nume cu cel al clasei și se apelează utilizând cuvântul cheie new. Sarcina
constructorului este aceea de a inițializa memoria alocată pentru obiect, unde vor fi
stocate câmpurile sale (cele care nu sunt statice – vom afla despre ceea ce înseamnă
static în viitor).
În lecția anterioară am aflat ce sunt câmpurile și proprietățile, și deja cunoaștem conceptul de metode. Deci, în codul de mai sus,
există o singură bucată rămasă neanalizată încă. Anume, aceasta:

Semi-metoda de mai sus se numește constructorul clasei noastre. De ce o numesc semi-metodă? Ei bine, puteți vedea în mod
clar că nu returnează un tip, ceea ce o exclude din categoria funcții, dar de asemenea nu folosește cuvântul cheie void,  așa
cum orice metodă ar trebui.
Un alt lucru pe care l-ați observat este că identificatorul (numele) constructorului este identic cu identificatorul clasei. Să
vedem ce s-ar fi întâmplat dacă am fi numit constructorul în mod diferit:
Codul de mai sus ne va da o eroare: Metoda trebuie să returneze un
tip (Method must have a return type). Deci, compilatorul nu o mai recunoaște
ca fiind un constructor, ci mai degrabă încearcă să o trateze ca o funcție
obișnuită. Din acest lucru, rezultă următoarea concluzie: în C# este obligatoriu
ca numele fiecărui constructor să fie identic cu numele clasei în care este
declarat. De asemenea, nu este permisă declararea unei metode al cărei
nume este identic cu numele clasei (și implicit, numele constructorilor). Dacă
totuși, o metodă este declarată cu același nume cu al clasei, aceasta va cauza o
eroare de compilare ‘Cuptor’: numele de membri nu pot fi identice cu tipul ce
le înglobează (‘Cuptor’: member names cannot be the same as their
enclosing type).
Despre modificatori vom învăța în viitor, deși am întâlnit deja câțiva dintre ei
(private, public, static). În afară de aceasta, lista de parametri este similară cu
modul în care declarăm metodele cu parametri. În următoarea lecție, vom învăța
cum să creăm copii ale schiței obiectelor noastre. Dar, așa cum am învățat în
lecția Proprietăți, copiile noastre nu ne-ar fi de mare folos dacă nu le-am putea
individualiza:
Exemplul de mai sus funcționează perfect, dar are multe linii, mai ales dacă trebuie să specificăm o mulțime de proprietăți. În schimb, am putea
să facem acest lucru direct atunci când creăm copia obiectului, utilizând un constructor cu parametri. Să spunem că avem acest cod:
Un mod mult mai scurt și mai elegant de a defini o copie nouă! Un lucru de observat aici – am definit
variabilele parametrilor cu același nume cu al câmpurile noastre. Asta lucru este total acceptabil. De
asemenea, observați că domeniul de definiție al parametrilor constructorilor este identic cu domeniul
parametrilor metodelor obișnuite: este disponibil numai pentru corpul constructorului. Deși există o capcană
în privința acestui fapt. Am explicat anterior că folosirea cuvântului cheie this este opțională, și indică faptul
că ne referim la chestiuni legate de copia curentă a obiectului pe care îl manipulăm la momentul respectiv.
Deci, am fi putut scrie acest lucru:

S-ar putea să vă placă și

  • Lucrare Practică Nr.8
    Lucrare Practică Nr.8
    Document1 pagină
    Lucrare Practică Nr.8
    Roman Boiciuc
    Încă nu există evaluări
  • Lucrare Practică Nr.6
    Lucrare Practică Nr.6
    Document2 pagini
    Lucrare Practică Nr.6
    Roman Boiciuc
    Încă nu există evaluări
  • LP 5
    LP 5
    Document4 pagini
    LP 5
    Roman Boiciuc
    Încă nu există evaluări
  • LP 6
    LP 6
    Document2 pagini
    LP 6
    Roman Boiciuc
    Încă nu există evaluări
  • LP 4
    LP 4
    Document5 pagini
    LP 4
    Roman Boiciuc
    Încă nu există evaluări
  • ST - Individual Nr.7 Prog
    ST - Individual Nr.7 Prog
    Document1 pagină
    ST - Individual Nr.7 Prog
    Roman Boiciuc
    Încă nu există evaluări
  • Lepe 1
    Lepe 1
    Document4 pagini
    Lepe 1
    Roman Boiciuc
    Încă nu există evaluări
  • LPP 4
    LPP 4
    Document3 pagini
    LPP 4
    Roman Boiciuc
    Încă nu există evaluări
  • Carwash
    Carwash
    Document12 pagini
    Carwash
    Roman Boiciuc
    Încă nu există evaluări
  • Eseu
    Eseu
    Document2 pagini
    Eseu
    Roman Boiciuc
    Încă nu există evaluări
  • LPP 3
    LPP 3
    Document3 pagini
    LPP 3
    Roman Boiciuc
    Încă nu există evaluări
  • LPL 7
    LPL 7
    Document2 pagini
    LPL 7
    Roman Boiciuc
    Încă nu există evaluări
  • Structura Si Functionarea Calculatorului
    Structura Si Functionarea Calculatorului
    Document10 pagini
    Structura Si Functionarea Calculatorului
    Roman Boiciuc
    Încă nu există evaluări
  • Cultura Basarabia
    Cultura Basarabia
    Document2 pagini
    Cultura Basarabia
    Roman Boiciuc
    Încă nu există evaluări
  • Bas Reform
    Bas Reform
    Document2 pagini
    Bas Reform
    Roman Boiciuc
    Încă nu există evaluări
  • LP 9
    LP 9
    Document9 pagini
    LP 9
    Roman Boiciuc
    Încă nu există evaluări
  • Colon Iz Are
    Colon Iz Are
    Document1 pagină
    Colon Iz Are
    Roman Boiciuc
    Încă nu există evaluări
  • Primul Război Mondial
    Primul Război Mondial
    Document28 pagini
    Primul Război Mondial
    Roman Boiciuc
    Încă nu există evaluări
  • Lucrare Practică Nr.4
    Lucrare Practică Nr.4
    Document24 pagini
    Lucrare Practică Nr.4
    Roman Boiciuc
    Încă nu există evaluări
  • Fizica 1
    Fizica 1
    Document26 pagini
    Fizica 1
    Roman Boiciuc
    Încă nu există evaluări
  • Colon Iz Are
    Colon Iz Are
    Document1 pagină
    Colon Iz Are
    Roman Boiciuc
    Încă nu există evaluări
  • Lucrare Practica Nr.2 Asambl.
    Lucrare Practica Nr.2 Asambl.
    Document12 pagini
    Lucrare Practica Nr.2 Asambl.
    Roman Boiciuc
    Încă nu există evaluări
  • Cel Vegetală-Animală
    Cel Vegetală-Animală
    Document1 pagină
    Cel Vegetală-Animală
    Roman Boiciuc
    Încă nu există evaluări
  • Acro
    Acro
    Document1 pagină
    Acro
    Roman Boiciuc
    Încă nu există evaluări
  • Lucrare Practica Nr.2 Asambl.
    Lucrare Practica Nr.2 Asambl.
    Document12 pagini
    Lucrare Practica Nr.2 Asambl.
    Roman Boiciuc
    Încă nu există evaluări