La nivel de definiție, clasele sunt obiecte definite de cuvântul cheie class, urmat de un identificator (nume) și un corp (bloc de cod), care conține codurile care definesc obiectul și comportamentul acestuia.
Clasele pot conține în general doar patru tipuri de elemente:
- Câmpuri – variabile membru de un anumit tip, definite la nivel de clasă
- Proprietăți – un tip special de construct de programare, care ne ajută să manipulăm câmpurile și să setăm proprietățile obiectului
- Metode – implementează funcționalitatea obiectului.
- Evenimente – semnalează momentul când anumite acțiuni au fost efectuate.
Aceste noi concepte nu sunt foarte descriptive acum, dar să ne imaginăm similitudinea cu obiectele din lumea reală, lucru ce ne va ajuta să le conceptualizăm mai bine. Să luăm de exemplu un obiect aleatoriu, cum ar fi un cuptor cu microunde. În lumea reală, am putea spune că un cuptor are câteva proprietăți, cum ar fi culoarea, dimensiunile, greutatea, nu? De asemenea, putem spune că putem efectua anumite acțiuni asupra cuptorului, cum ar fi oprirea, stabilirea temperaturii, etc. În final, putem spune că un cuptor are evenimente, precum sunetul „ding!” atunci când acțiunea de gătit este finalizată.
Ei bine, iată! Acesta este și un obiect de programare! Un obiect de programare poate avea proprietăți – dimensiuni, culoare, greutate, poate avea metode – cum ar fi pornirea sau dezactivarea, și poate avea evenimente – cum ar fi sunetul „ding!” atunci când o acțiune este finalizată! Vedeți? În realitate, obiectele din programare nu sunt deloc diferite de cele din lumea reală!
Acum, când începem să vedem cumva conceptul general al acestora, putem să ne suflecăm mânecile și să trecem la partea practică a creării obiectului virtual „cuptor”. Mai înainte de toate, de vreme ce e prima dată când avem de-a face cu clase, să vedem cum putem adăuga un astfel de fișier la proiectul nostru.
În fereastra Solution Explorer, efectuați click dreapta pe numele proiectului (al proiectul, nu al soluției!) și alegeți din meniul „Add” submeniul „Class…”, ca în următoarea imagine:
Alternativ, puteți merge la meniul Project și puteți alege direct „Add Class…”. Când veți termina, va apărea o nouă fereastră:
Asigurați-vă că ați selectat „Visual C# Items” din lista stângă, și că aveți șablonul „Class” selectat în listă. Denumiți noua clasă „Cuptor”. Faceți clic pe butonul Add. Ar trebui să aveți acum un fișier nou care arată astfel:
Puteți vedea în partea dreaptă noul fișier creat în proiectul vostru, și puteți vedea și codurile sale în fereastra principală.
Și cu asta, am terminat. Am creat un nou obiect denumit Cuptor, care, pentru moment este gol, dar există. Așa cum am explicat mai devreme, puteți vedea că este definit de cuvântul cheie class, urmat de un identificator („Cuptor”) și de un corp (spațiul delimitat de acolade). Acum putem începe proiectarea și modificarea în sine a obiectului. Deci, să adăugăm clasei noastre niște cod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
class Cuptor { private string model; // Campul "model" private string culoare; private int greutate; private int inaltime; private int latime; private int lungime; public string Model // Proprietatea "Model" { get // Getter-ul proprietatii "Model" { return this.model; } set // Setter-ul proprietatii "Model" { this.model = value; } } public string Culoare { get { return this.culoare; } set { this.culoare = value; } } public int Greutate { get { return this.greutate; } set { this.greutate = value; } } public int Inaltime { get { return this.inaltime; } set { this.inaltime = value; } } public int Latime { get { return this.latime; } set { this.latime = value; } } public int Lungime { get { return this.lungime; } set { this.lungime = value; } } public Cuptor() // Constructor prestabilit { this.model = "EKK6450AOX"; this.culoare = "Gri"; this.greutate = 40; this.inaltime = 85; this.latime = 60; this.lungime = 60; } public void Porneste() // Metoda Porneste { Console.WriteLine("Cuptor pornit!"); } public void Opreste() { Console.WriteLine("Cuptor oprit!"); } } |
Poate vi se pare o grămadă de cod, dar dacă priviți cu atenție, este foarte repetitiv. Oricum, ne-am atins scopul, am creat un obiect virtual de tip cuptor, care are câmpuri, proprietăți și metode. Nu are evenimente încă, deoarece evenimentele sunt un concept mai complicat, pe care îl voi explica în viitor. În următoarele lecții, voi explica mai detaliat fiecare dintre aceste componente ale unui obiect.