User Tools

Site Tools


Problem constructing authldap
laboratoare:static-final
Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
laboratoare:static-final [2019/10/20 14:57]
Radu Matei [Cuvântul-cheie "final". Obiecte immutable]
laboratoare:static-final [2019/10/23 12:19] (current)
Radu Matei [Exerciții]
Line 79: Line 79:
 }  ​ }  ​
 </​code>​ </​code>​
-În acest caz, numărul de obiecte create în memorie este unul foarte mare. Dintre acestea doar cel rezultat la final este util. Pentru a preveni alocarea nejustificată a obiectelor de tip Strîng ​care reprezintă pași intermediari în obținerea șirului dorit putem alege să folosim clasa StringBuilder creată special pentru a efectua operații pe șiruri de caractere.+În acest caz, numărul de obiecte create în memorie este unul foarte mare. Dintre acestea doar cel rezultat la final este util. Pentru a preveni alocarea nejustificată a obiectelor de tip String ​care reprezintă pași intermediari în obținerea șirului dorit putem alege să folosim clasa StringBuilder creată special pentru a efectua operații pe șiruri de caractere.
 <code java5> <code java5>
 public static String concatenareCuClasaStringBuilder(){  ​ public static String concatenareCuClasaStringBuilder(){  ​
Line 150: Line 150:
 }  ​ }  ​
 </​code>​ </​code>​
-Pentru a observa utilitatea variabilelor statice, vom crea o clasa care tine un contor static ce numara cate instante ​a produs clasa in total.+Pentru a observa utilitatea variabilelor statice, vom crea o clasa care ține un contor static ce numără câte instanțe ​a produs clasa în total.
 <code java5> <code java5>
 class ClassWithStatics { class ClassWithStatics {
Line 179: Line 179:
 }  ​ }  ​
 </​code>​ </​code>​
-Desi am mentionat ​anterior faptul ​ca field-urile ​si metodele statice se acceseaza ​folosind sintaxa ''<​NUME_CLASA>​.<​NUME_METODA/​FIELD>''​ acesta nu este singura abordare ​disponibila in libajul Java. Pentru a referi o entitate ​statica ​ne putem folosi ​si de o instanta ​a clasei ​in care se afla metoda/field-ul accesat. +Deși am menționat ​anterior faptul ​că field-urile ​și metodele statice se accesează ​folosind sintaxa ''<​NUME_CLASA>​.<​NUME_METODA/​FIELD>''​ acesta nu este singura abordare ​disponibilă în libajul Java. Pentru a referi o entitate ​statică ​ne putem folosi ​și de o instanța ​a clasei ​în care se află metodă/field-ul accesat. 
-<note important>​In acest caz nu este relevant ​daca tipul obiectului folosit este diferit de cel al referintei in care e stocat(i.e. avem o referinta ​a clasei Animal care refera ​un obiect de tipul Dog). Pentru apelul unei metode statice se va lua in considerare numai tipul referintei, nu si cel al instantei ​pe care o refera</​note>​+<note important>​În acest caz nu este relevant ​dacă tipul obiectului folosit este diferit de cel al referinței în care e stocat(i.e. avem o referință ​a clasei Animal care referă ​un obiect de tipul Dog). Pentru apelul unei metode statice se va lua în considerare numai tipul referinței, nu și cel al instanței ​pe care o referă</​note>​
 <code java5> <code java5>
 class ClassWithStatics { class ClassWithStatics {
Line 201: Line 201:
 }  ​ }  ​
 </​code>​ </​code>​
-<note warning>Desi putem accesa o entitate ​statica ​folosind o referinta, acest lucru este contraindicat. Field-urile ​si metodele statice ​apartin ​clasei ​si nu ar trebui ​sa fie in nici un fel dependente ​de existenta ​unei instante.</​note>​+<note warning>Deși putem accesa o entitate ​statică ​folosind o referință, acest lucru este contraindicat. Field-urile ​și metodele statice ​aparțin ​clasei ​și nu ar trebui ​să fie in nici un fel dependențe ​de existența ​unei instanțe.</​note>​
  
-Pentru a facilita o initializare ​facila ​a field-urilor statice pe care o clasa le detine, limbajul Java pune la dispozitie ​posibilitatea de a folosi blocuri statice de cod. Aceste blocuri de cod sunt executate atunci ​cand clasa in cauza este incarcata ​de catre masina virtuala ​de java. Incarcarea ​unei clase se face in momentul ​in care aceaste este referita pentru prima data in cod (se creaza ​instanta, se apeleaza ​metoda statica ​etc.) +Pentru a facilita o initializare ​facilă ​a field-urilor statice pe care o clasa le deține, limbajul Java pune la dispoziție ​posibilitatea de a folosi blocuri statice de cod. Aceste blocuri de cod sunt executate atunci ​când clasa în cauza este încărcată ​de către mașina virtuală ​de java. Încărcarea ​unei clase se face în momentul ​în care aceaste este referita pentru prima dată in cod (se crează ​instanță, se apelează ​metodă statică ​etc.) 
-In consecinta, blocul static de cod se va executa intotdeauna inainte ca un obiect ​sa fie creat.+În consecință, blocul static de cod se va execută întotdeauna înainte că un obiect ​să fie creat.
  
 <code java5> <code java5>
Line 311: Line 311:
     * o metodă getArray implementată în așa fel încât field-ul ''​immutableArray''​ să rămână immutable     * o metodă getArray implementată în așa fel încât field-ul ''​immutableArray''​ să rămână immutable
   - (**1p**) Testați clasa ''​MyImmutableArray''​ demonstrând faptul că instanțele acestei clase sunt imutabile   - (**1p**) Testați clasa ''​MyImmutableArray''​ demonstrând faptul că instanțele acestei clase sunt imutabile
 +== Resurse ==
 +* {{:​laboratoare:​static-final:​schelet_lab4.zip|Arhiva zip cu clasa RandomStringGenerator.java}}
  
laboratoare/static-final.1571572632.txt.gz · Last modified: 2019/10/20 14:57 by Radu Matei