Diferență între revizuiri ale paginii „Sintaxa limbajului Java; Structura lexicală a unui program”
Linia 66: | Linia 66: | ||
Obiectele de orice tip (clasă), se creează folosind operatorul '''new''' conform următorului exemplu: | Obiectele de orice tip (clasă), se creează folosind operatorul '''new''' conform următorului exemplu: | ||
<syntaxhighlight lang="java" line> | <syntaxhighlight lang="java" line> | ||
− | Object | + | Object obj; |
new Object(); | new Object(); | ||
− | + | obj = new Object(); | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | Se observă linia 2, care instanțiază un obiect nou, de tipul clasei Object, dar nu există nici o referință la acest obiect nou creat. Astfel, imediat după instanțiere, memoria alocată este eliberată de către ''garbage collector'', aceasta ne mai putând fi accesibilă. Linia 3 instanțiază un obiect nou, și variabila | + | Se observă linia 2, care instanțiază un obiect nou, de tipul clasei Object, dar nu există nici o referință la acest obiect nou creat. Astfel, imediat după instanțiere, memoria alocată este eliberată de către ''garbage collector'', aceasta ne mai putând fi accesibilă. Linia 3 instanțiază un obiect nou, și variabila ''obj'' va fi referință la obiectul nou creat. Mai multe despre instanțierea obiectelor și constructori în capitolele care urmează. |
{| class="wikitable" | {| class="wikitable" |
Versiunea de la data 19 iulie 2012 09:18
O aplicație Java este formată din două tipuri de elemente: clase și interfețe.
Înainte să prezentăm structura lexicală a claselor și interfețelor, trebuie să discutăm despre tipurile de date.
Tipuri de date
În Java, există două categorii de tipuri de date: primitive și referințe. Tipurile primitive se referă la cele care au valori imediate (valori numerice sau logice), iar referințele sunt nume care identifică obiecte.
Tipuri primitive
În Java, tipurile primitive sunt:
Nume | Categorie | Număr de biți | Valori posibile |
---|---|---|---|
byte | întreg | 8 | -128 : 127 |
short | întreg | 16 | -32768 : 32767 |
int | întreg | 32 | -2147483648 : 2147483647 |
long | întreg | 64 | -9223372036854775808 : 9223372036854775807 |
char | caracter | 16 | Orice caracter Unicode |
boolean | logic | 8 | true, false |
float | virgulă mobilă | 32 | ±1.18 x 10-38 : ±3.4 x 1038 |
double | virgulă mobilă | 64 | ±2.23 x 10-308 : ±1.80 x 10308 |
Variabilele de tip primitiv se declară în același fel ca cele din C. Ca exemplu:
int someInteger;
int someOtherInteger = 10;
float someFloat = 10.5f;
double someDouble = 5.3 + someFloat;
boolean condition = true;
char oneChar = 'g';
char newLineChar = '\n';
Atenție: În Java nu există tipuri de date fără semn.
Similar cu C, există și în Java operatori de cast pentru tipuri de date primitive. Unele operații de conversie sunt implicite (de la întreg la virgulă mobilă), dar unele trebuie specificate (de la virgulă mobilă la întreg, de la char la întreg), iar altele nu sunt posibile deloc (de la boolean la orice alt tip sau invers).
În Java, tipurile primitive numerice se inițializează implicit cu valoarea 0, iar cele logice cu valoarea false.
Tipuri referință
Variabilele de tip referință sunt identificatori ale unor obiecte. Două referințe pot identifica același obiect, dar o referință nu poate identifica două obiecte în același timp.
Referințele se inițializează implicit cu valoarea null.
Referință la obiecte
Obiectele de orice tip (clasă), se creează folosind operatorul new conform următorului exemplu:
1Object obj;
2new Object();
3obj = new Object();
Se observă linia 2, care instanțiază un obiect nou, de tipul clasei Object, dar nu există nici o referință la acest obiect nou creat. Astfel, imediat după instanțiere, memoria alocată este eliberată de către garbage collector, aceasta ne mai putând fi accesibilă. Linia 3 instanțiază un obiect nou, și variabila obj va fi referință la obiectul nou creat. Mai multe despre instanțierea obiectelor și constructori în capitolele care urmează.