Date

Datele situate într-o clasă sunt desemnate sub numele de variabile sau atribute. Datele pot fi de orice tip, inclusiv alte clase.

[modificatorAcces] tipData nume;

unde:

modificatorAcces – este opțional. Implicit este private

tipData – reprezintă tipul datei obiectului pe care vrem să-l atribuim

nume – se referă la numele dat de utilizator obiectivului respectiv.

Datele pot fi:

  • constante
  • câmpuri

Constantele – descriu valori fixe, putând fi valori calculate sau dependente de alte constante. În mod obligatoriu valoarea unei astfel de constante trebuie să fie calculată în momentul compilării. Valoarea unei constante se declară prin cuvântul const. Sintaxa este:

[modificator] const tip identificator = expresieConstanta

unde tip poate fi: bool, decimal, sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, enum, string.

Constanta mai poate avea ca modificator de acces: new, public, protected, internal, protected internal, private.

class Constante
{
    public const int MAX = 100;
    const string SALUT = "Buna ziua!";
    public const double MIN = MAX / 3.2;
}
 Câmpul – reprezintă o dată variabilă a unei clase. În afară de modificatorii menționați mai sus, se mai adaugă: new, readonly, volatile, static. Opțional, câmpurile pot fi inițializate cu valori compatibile. Un astfel de câmp se poate folosi fie prin specificarea numelui său, fie printr-o calificare bazată pe numele clasei sau al unui obiect. Sintaxa este:
tip identificator [=valoare]
class Camp
{
    public int varsta;
    protected string nume;
    private int id = 13;
    int a; //implicit private
    static void Main(string[] args)
    {
        Camp obiect = new Camp();
        obiect.= 1;
    }
}
 Câmpuri de instanță
În cazul în care într-o declarație de câmp nu este inclus modificatorul static, atunci respectivul câmp se va regăsi în orice obiect de tipul clasei curente care va fi instanțiat. Deoarece un astfel de câmp are o valoare specifică fiecărui obiect, accesarea lui se va face folosind numele obiectului:
obiect.a=1;
Un câmp special este this care reprezintă o referință la obiectul curent.
Câmpuri statice
Dacă într-o declarație de câmp apare specificatorul static, câmpul respectiv va aparține clasei. Accesarea unui astfel de câmp din exteriorul clasei se poate face doar prin intermediul numelui de clasă.
class Camp
{
    public static int a = 13;
    static void Main(string[] args)
    {
        Camp.a++;
    }
}
 Câmpuri readonly
Pentru a declara un câmp readonly se va folosi cuvântul readonly în declarația sa. Atribuirea se face doar la declararea sa, sau prin intermediul unui constructor.
class Camp
{
    public readonly string a = “Exemplu”; //camp readonly initializat
    public readonly string b;
    public class Camp(string b) //constructor
    {
        this.= b;
    } //camp readonly initializat
}
 În momentul compilării valoarea câmpului readonly nu se presupune a fi cunoscută.
Câmpuri volatile
Câmpurile volatile se declară cu ajutorul cuvântului volatile, care poate fi atașat dpar următoarelor tipuri:
  • byte, sbyte, short, ushort, int, uint, char, float, bool
  • un tip de enumerare care are tipul: byte, sbyte, short, ushort, int, uint
  • un tip referință

Inițializarea câmpurilor

Valorile implicite pe care le iau câmpurile la declararea lor sunt:

tip valoare
numeric 0
bool false
char \0
enum 0
referință null

Leave a comment