Poslednji deo zadatka: koristimo ključnu reč this
Prvo da uvedemo sledeći pojam: ključna reč this - koristi se da označi trenutni (tekući) objekat , odnosno instancu klase.
Kada se napiše this, pa iza toga tačka, iza se mogu staviti članovi i metode koji pripadaju tom konkretnom objektu.
Pokušaćemo to da objasnimo na primeru konstruktora za klasu buba iz prethodnog zadatka:
class buba{internal string vrsta;internal int predvidjenaStarost;internal string boja;public buba(){vrsta="nepoznata";predvidjenaStarost=2;boja="nepoznata";}public buba(string vrsta, int starost, string boja){this.vrsta=vrsta;this.predvidjenaStarost=starost;this.boja=boja;}}
Ovde vidite da su nazivi parametara koji se daju konstruktoru isti kao i članovi unutar klase. Kada se tako nešto desi (a često će se desiti), tada je potrebno razlikovati ono što se daje konstruktoru kao parametar i ono što je član konkretnog objekta koji će da se napravi.
Recimo da se u glavnoj metodi kreiraju još dve bube: leptor i stonoga:
buba B4 = new buba("leptir", 15, "bela");buba B5 = new buba("stonoga", 20, "zelena");
Prilikom kreiranja bube leptira, konstruktoru se prosleđuju parametri: prvi parametar je "leptir", i on je na mestu parametra koji smo nazvali vrsta, ali kada se kreira objekat, taj parametar se dodeljuje konkretnom objektu koji je kreiran (this.vrsta dobija vrednost "leptir"). Drugim rečima, tom, konkretnom primerku bube se daje vrsta leptir, koja se odnosi samo na tu bubu i ni na jednu drugu ...
Ceo program izgleda ovako:
using System;namespace zoo{class buba{internal string vrsta;internal int predvidjenaStarost;internal string boja;public buba(){vrsta="nepoznata";predvidjenaStarost=2;boja="nepoznata";}public buba(string vrsta, int starost, string boja){this.vrsta=vrsta;this.predvidjenaStarost=starost;this.boja=boja;}}class MainClass {public static void Main (string[] args) {buba B1 = new buba();B1.vrsta="smrdibuba";Console.Write("Prva buba je " + B1.vrsta );Console.Write(" može da bude stara " + B1.predvidjenaStarost + " dana");Console.WriteLine(" i boja joj je " + B1.boja);buba B2 = new buba("mrav", 200, "crna") ;buba B3 = new buba("jelenak", 150, "braon");Console.WriteLine("\n sledeća je buba {0}, koja živi do {1} dana, boja: {2}",B2.vrsta, B2.predvidjenaStarost,B2.boja );Console.WriteLine("\n zatim ide buba {0}, koja živi do {1} dana, boja: {2}",B3.vrsta, B3.predvidjenaStarost,B3.boja );buba B4 = new buba("leptir", 15, "bela");buba B5 = new buba("stonoga", 20, "zelena");/* ovde vi treba da ispišete poruku u kojoj će da se pominju poslednje dve bube */}}}