Krizsán Zoltán, iit C# osztályok 2 Adattagok Osztály hatáskörben definiált változó. Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][, azonosító [=kezdő érték]]; Módosítók lehetnek: const – konstans readonly – csak olvasható mező static – statikus volatile – gyakran változó
Ha nem inicializáljuk, akkor is van értékük. ◦ Érték típusnál 0, false, …. ◦ Referencia típusnál null. A volatile módosító csak kérés, hatására lehetőleg a regiszterben tárolódik.
Krizsán Zoltán, iit C# osztályok 4 Konstans Értéke fordítási időben állítódik be, futási időben értéke nem változtatható. Csak konstans értékét veheti fel. Alapértelmezett tárolási osztálya static (ha úgysem változhat). Nem kell példányosítani az osztályt ahhoz, hogy használjuk (mivel static) MSIL kódban lcd utasítás (load constant) tölti fel a stack-re.
Krizsán Zoltán, iit C# osztályok 5 Csak olvasható mezők Futási időben állítható az értéke, de csak egyszer! Értékét 3 helyen állíthatjuk: konstruktor, statikus konstruktor, vagy a definíció során. Értékét akár fv. hívás visszatérési értéke is szolgáltathatja! Az osztály különböző példányaiban a mező különböző étéket vehet fel. Alapból nem statikus, de azzá tehető.
Kívülről adattag belülről tfv. Lehet csak írható, lehet csak olvasható Nem lehet fv. bármilyen paramétere! Absztrakt osztály segítségével kikényszeríthető a léte! Lehet virtuális. Lehet statikus. Krizsán Zoltán, iitC# osztályok6
[attributes] [modifers] { [ set { } ] [ get { } ] } Krizsán Zoltán, iitC# osztályok7
class Address{ protected string city; public string City{ get{ return city; } } //csak olvasható protected string zipCode; public string ZipCode{ get { return zipCode; } set { zipCode = value; city = "Atlanta";} } class PropertyApp{ public static void Main(){ Address addr = new Address(); addr.ZipCode = "30338"; string zip = addr.ZipCode; Console.WriteLine("The city for ZIP code {0} is {1}", addr.ZipCode, addr.City); } Krizsán Zoltán, iitC# osztályok8
Krizsán Zoltán, iitC# osztályok9