Blogul lui Alex Chiri Mai puţină programare, mai multă dezvoltare personală

21Aug/090

Declararea și inițializarea de Array

După cum bine se știe un Array, în Java, se poate declara în felul următor:

int[] numere[] = new int[10][10];

Parantezele pătrate se pot pune ori la tipul de date, ori la numele variabilei, ori la amândouă. De asemenea dimensiunea poate lipsi la ultimele dimensiuni ale array-ului. Deci aș fi putut scrie și așa:

int[] numere[] = new int[10][];

Există două modalități de a face declararea și inițializarea unui Array:

  1. int[] numere = new int[] {1, 2, 3, 4};
    Atenție: cand se face inițializarea array-ului nu se mai trece dimensiunea!
  2. int[] numere = {1, 2, 3, 4};
    Acesta este un bloc de inițializare, care poate fi folosit în locul liniei de mai sus, are același efect.

Diferența între cele două modalități este că cea de-a doua nu este o expresie și nu poate fi folosită în felul următor:

int[] numere;

numere = {1, 2, 3, 4}; //nu e ok

numere = new int[] {1, 2, 3, 4}; //e ok

Tagged as: , , No Comments
18Aug/090

Tipul Enum* (java.lang.Enum)

Câte ceva despre tipul Enum:

  • un tip care conține un set de constante;
  • un tip enum poate avea constructori, dar aceștia trebuie declarați după definirea constantelor și pot fi doar private;
  • toate enum-urile sunt subtipuri ale clasei java.lang.Enum, prin urmare sunt comparabile și serializabile;
  • la definirea constantelor se poate specifica o listă de parametri pentru fiecare, iar la încărcarea enum-ului pentru fiecare constantă se va apela constructorul corespunzător semnăturii ei;
  • un enum poate fi declarat în cadrul unei alte clase, dar doar ca membru de prim nivel sau în cadrul unui membru static; toate enum-urile declarate în cadrul unei alte clase sunt implicit statice;
  • deși un enum poate coține diferite metode abstracte, tipul nu va fi marcat ca și abstract, ca în cazul claselor obișnuite;
  • fiecare constantă a unui enum poate implementa diferite metode specifice, sub forma unor clase anonime care sunt instanțiate la “runtime”;
  • un enum poate implementa interfețe dar nu poate extinde;
  • Compararea cu == sau cu equals este echivalentă în cazul constantelor unui enum;

*Conform Java 1.6

Tagged as: , , No Comments
   
6 visitors online now
6 guests, 0 members
Max visitors today: 6 at 02:10 pm EEST
This month: 23 at 07-10-2010 10:40 am EEST
This year: 33 at 01-15-2010 08:31 am EET
All time: 33 at 01-15-2010 08:31 am EET