Tipuri de date

In Java tipurile de date se impart în doua categorii: tipuri primitive şi tipuri referinţa. Java porneşte de la premiza ca ’’orice este un obiect”, prin urmare tipurile de date ar trebui sa fie de fapt definite de clase şi toate variabilele ar trebui sa memoreze instanţe ale acestor clase (obiecte). In principiu acest lucru este adevarat, însa, pentru usurinta programarii, mai exista si asa numitele tipurile primitive de date, care sunt cele uzuale :

  • aritmetice

  • întregi: byte (1 octet), short (2), int (4), long (8)

  • reale: float (4 octeti), double (8)

  • caracter: char (2 octeti)

  • logic: boolean (true si false)

In alte limbaje de programare formatul si dimensiunea tipurilor primitive de date pot depinde de platforma pe care ruleaza programul. In Java acest lucru nu mai este valabil, orice dependenta de o anumită platforma specifica fiind eliminata.

Vectorii, clasele si interfetele sunt tipuri referinta. Valoarea unei variabile de acest tip este, spre deosebire de tipurile primitive, o referinta (adresa de memorie) catre valoarea sau multimea de valori reprezentata de variabila respectiva.

Exista trei tipuri de date din limbajul C care nu sunt suportate de limbajul Java. Acestea sunt: pointer, struct si union. Pointerii au fost eliminat din cauza ca erau o sursa constanta de erori, locul lor fiind luat de tipul referinta, iar struct si union nu îsi mai au rostul atat timp cat tipurile compuse de date sunt formate în Java prin intermediul claselor.

Variabile

Variabilele pot fi de tip primitiv sau referinţe la obiecte (tip referinţă). Indiferent de tipul lor, pentru a putea fi folosite variabilele trebuie declarate si, eventual, initializate.

  • Declararea variabilelor: Tip numeVariabila;

  • Initializarea variabilelor: Tip numeVariabila = valoare;

  • Declararea constantelor: final Tip numeVariabila;

Evident, exista posibilitatea de a declara si initializa mai multe variabile sau constante de acelasi tip într-o singura instructiune astfel:

Tip variabila1[=valoare1], variabila2[=valoare2],...;

Convenea de numire a variabilelor în Java include, printre altele, urmatoarele criterii:

  • variabilele finale (constante) se scriu cu majuscule;

  • variabilele care nu sunt constante se scriu astfel: prima literaa micaa iar daca numele variabilei este format din mai multi atomi lexicali, atunci primele litere ale celorlalt atomi se scriu cu majuscule.

Exemple:

final double PI = 3.14;

final int MINIM=0, MAXIM = 10;

int valoare = 100;

char c1='j', c2='a', c3='v', c4='a';

long numarElemente = 12345678L;

String bauturaMeaPreferata = "apa";

In functie de locul în care sunt declarate variabilele se împart în urmatoatele categorii:

  • Variabile membre, declarate în interiorul unei clase, vizibile pentru toate metodele clasei respective cat si pentru alte clase în functie de nivelul lor de acces (vezi ’’Declararea variabilelor membre”).

  • Parametri metodelor, vizibili doar în metoda respectiva.

  • Variabile locale, declarate într-o metoda, vizibile doar în metoda respectiva.

  • Variabile locale, declarate într-un bloc de cod, vizibile doar în blocul respectiv.

  • Parametrii de la tratarea exceptiilor (vezi ’’Tratarea excepţiilor”).

class Exemplu {

//Fiecare variabila corespunde situaţiei data de numele ei //din enumerarea de mai sus int a;

public void metoda(int b) { 

a = b; int c = 10;

for(int d=0; d < 10; d++) { 

c --;

}

try {
a = b/c;

} catch(ArithmeticException e) {

System.err.println(e.getMessage());

}

}

}

Observatii:

• Variabilele declarate într-un for, raman locale corpului ciclului:

for(int i=0; i<100; i++) {

//domeniul de vizibilitate al lui i

}

i = 101;//incorect 1

int x=1;

{

int x=2; //incorect

}

Back to Top