Tipuri de date primitive

Tipul de date este unul din conceptele fundamentale ale programării calculatoarelor. Tipul de date este o mulțime de valori, asociată cu o mulțime de operații care se pot face asupra valorilor respective.

În limbajul Java, tipurile de date se împart în două categorii: tipuriprimitive și tipuri referință.

Tipurile de date primitive sunt predefinite în limbaj. Aceasta înseamnă că numele, mulțimea de valori,  mulțimea de operații și tipul rezultatului operațiilor pentu fiecare tip primitiv sunt impuse prin limbaj și, deci, nu trebuie definite și nu pot fi modificate de programator.

Tipurile de date primitive în limbajul Java se clasifică astfel:

Pentru fiecare tip de date vom arăta  reprezentarea externă,  reprezentarea internă, operațiile și operatorii corespunzători.

Prin reprezentare externă, înțelegem regulile după care se scriu valorile datelor respective în programe, în documente sau pe ecranul calculatorului. Reprezentarea externă a valorii într-un program se numește literal.

Prin reprezentare internă, înțelegem forma sub care datele respective apar în memoria mașinii virtuale Java. O proprietate foarte importantă a reprezentării interne a datelor este că aceasta, fiind destinată mașinii virtuale Java, nu depinde de calculatorul concret pe care se va executa programul.

Vom începe studiul cu tipul de date boolean, apoi vom studia tipurile numerice propriu-zise (intregi și reale), după care vom studia tipul char, ca un tip numeric special.

Operații și operatori

Pentru fiecare tip primitiv de date vom arăta, de asemenea, operațiile specifice și operatorii corespunzători. Pentru început, vom prezenta aici operația de atribuire și operatorii relaționali == și != care se aplică tuturor tipurilor de date. Celelalte operații și operatorii corespunzători se vor fi prezenta odată cu tipurile de date cărora li se aplică.

Operația de atribuire

Prin operația de atribuire se dă (se atribuie) unei variabile o nouă valoare, care o înlocuiește pe cea deja existentă. Operatorul de atribuire este = (semnul egal, care însă aici se citește "se atribuie") este un operator binar cu efect lateral. Expresia a=b, în care a este o variabila, iar b este un operand care poate fi un literal, o variabilă sau o expresie, are semnificația "se atribuie variabilei a valoarea operandului b". Atribuirea este posibilă numai daca valoarea operandului b este de acelasi tip cu variabila a, sau dacă se poate converti implicit la acest tip. Atribuirea este o operație cu efect lateral, deoarece produce modificarea valorii operandului situat în partea stânga a operatorului de atribuire.
 
Exemplu
Fie x o variabilă de tip int. Expresia x=-17 se citeste "se atribuie lui x valoarea -17". Efectul operației de atribuire este, în acest caz, că valoarea anterioară a variabilei x se înlocuiește în memorie prin noua valoare. În partea dreaptă a operatorului de atribuire putea fi nu numai un literal, ca în cazul nostru, ci orice altă expresie cu valoare de tip int.

Operatorii == și !=

Pentru toate tipurile de date se pot aplica operatorii relaționali == si !=. Aceștia sunt operatori binari fără efect lateral. La aplicarea unui astfel de operator, rezultatul operației este valoarea booleană true (adevărat) sau false (fals).

Operatorul == (se citește "este egal cu") exprimă relația de egalitate. Expresia a==b, unde a și b sunt doi operanzi care pot fi literali, variabile sau expresii, are valoarea logică (booleana) true dacă valoarile celor doi operanzi sunt egale, sau are valoarea logică false, dacă egalitatea nu este satisfacută.

Cei doi operanzi trebuie sa fie comparabili, deci fie ambii de tip boolean, fie ambii numerici.
 
Atragem atenția asupra deosebirilor esențiale dintre operatorul de atribuire = si operatorul de egalitate ==
  a/ Operatorul de atribuire = impune ca operandul din partea stangă sa fie o variabilă, în timp ce în cazul operatorului de egalitate == ambii operanzi pot fi expresii.
  b/ Operatorul de atribuire = are efect lateral, care constă în modificarea valorii variabilei din partea stangă, în timp ce operatorul == nu are efect lateral, deci valorile ambilor operanzi rămân neschimbate;
  c/ Valoarea expresiei de atribuire a=b este identică cu valoarea atribuita variabilei a și are deci tipul acesteia, în timp ce valoarea expresiei a==b este întotdeauna de tip boolean, indiferent de tipul operanzilor.

Operatorul != (se citește "este diferit de") exprimă relația de inegalitate a celor doi operanzi. Expresia a!=b, unde a și b sunt doi operanzi care pot fi literali, variabile sau expresii, are valoarea logică (booleană) false dacă valoarile celor doi operanzi sunt diferite, sau are valoarea logică true, dacă operanzii au valori egale.

Declarații de tip

Declararațiile de tip sunt instrucțiuni prin care se specifică tipul, numele și, dacă este necesar, valoarea inițială a variabilelor folosite în program. În limbajul Java, declarațiile de tip au forma:
        tip  variabila1, variabila2, ..., variabilaN;
în care:
    tip - tipul variabilelor care se declară;
    variabila- numele variabilei sau, daca este necesar, numele și valoarea inițială date sub forma    nume_variabilă = valoare_inițială
    nume_variabila este un identificator; în limbajul Java se obișnuiește ca numele de variabile să înceapă cu literă mică, deși aceasta nu este o regulă de sintaxă;
    valoare_initialaeste o valoare de același tip cu variabila, care se dă variabilei la inițializare (în momentul când i se alocă spațiu în memorie). Această valoare poate fi dată sub forma unui literal sau a unei expresii calculabile (în care toate variabilele au valori atribuite anterior).

Remarcăm că specificațiile variabilelor se separă între ele prin virgule, iar la sfârșitul declarației se pune simbolul ; (punct și virgulă) care, în limbajul Java, este terminatorul de instructiune.
 
Limbajul Java este strict tipizat, deci orice variabilă trebuie să fie declarată înainte de a fi folosită. În plus, compilatorul Java verifică dacă, în momentul primei ei utilizări într-o expresie, variabila are deja o valoare.
Exemplu
Prin instrucțiunea
   int alpha, beta=-723, gamma=beta+7;
se declară că variabilele alpha, beta și gamma sunt de tip int. Variabila alpha nu este inițializată, beta primește valoarea inițială -723, iar gamma primește ca valoare rezultatul calculării expresiei beta+7. Această expresie este calculabilă, întrucât beta are deja o valoare.



© Copyright 2000 - Severin BUMBARU, Universitatea "Dunărea de Jos" din Galați