Differences

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

Link to this comparison view

poo-ca-cd:laboratoare:design-avansat-de-clase [2025/10/13 22:35]
florian_luis.micu [Alocarea memoriei în Heap]
poo-ca-cd:laboratoare:design-avansat-de-clase [2025/10/13 22:40] (current)
florian_luis.micu [Laboratorul 2: Obiecte în Java]
Line 3: Line 3:
   * Autori: [[miculuis1@gmail.com | Florian-Luis Micu ]], [[sorinabuf@gmail.com | Sorina-Anamaria Buf ]], [[stefancocioran@gmail.com | Ștefan Cocioran ]]   * Autori: [[miculuis1@gmail.com | Florian-Luis Micu ]], [[sorinabuf@gmail.com | Sorina-Anamaria Buf ]], [[stefancocioran@gmail.com | Ștefan Cocioran ]]
   * Data publicării:​ 13.10.2025   * Data publicării:​ 13.10.2025
-  * Data ultimei modificări: ​13.10.2025+  * Data ultimei modificări: ​14.10.2025 
 +    * reordonarea secțiunilor,​ mutarea anumitor concepte în [Nice to know] și refrazări.  ​
  
 ===== Obiective ===== ===== Obiective =====
Line 1037: Line 1038:
 </​spoiler>​ </​spoiler>​
  
-După cum se poate observa, ''​a1''​ și ''​a2''​ vor funcționa ca entități independente una de cealaltă, astfel că modificarea câmpului ''​mass''​ din ''​a1''​ nu va avea nici un efect implicit și automat în ''​a2''​. Există totuși situații când dorim să creăm câmpuri care să fie partajate și să nu fie memorate separat pentru fiecare instanță.+După cum se poate observa, ''​a1''​ și ''​a2''​ vor funcționa ca entități independente una de cealaltă, astfel că modificarea câmpului ''​mass''​ din ''​a1''​ nu va avea nici un efect implicit și automat în ''​a2''​. ​
  
 Membrii statici **nu aparțin unei instanțe** anume, ci **clasei** în sine. Aceștia sunt împărtășiți de-a lungul tuturor obiectelor create din acea clasă și pot să fie accesate **fără** să se creeze o instanță, având o locație specială în memorie (diferită de Heap și Stack). Membrii statici **nu aparțin unei instanțe** anume, ci **clasei** în sine. Aceștia sunt împărtășiți de-a lungul tuturor obiectelor create din acea clasă și pot să fie accesate **fără** să se creeze o instanță, având o locație specială în memorie (diferită de Heap și Stack).
Line 1045: Line 1046:
 Când declarați o variabilă sau o metodă înăuntrul unei clase: Când declarați o variabilă sau o metodă înăuntrul unei clase:
   * **Membrii instanței**:​ aparțin doar obiectului instanțiat. (ex. ''​a1.mass''​ și ''​a2.mass''​ pot avea valori diferite).   * **Membrii instanței**:​ aparțin doar obiectului instanțiat. (ex. ''​a1.mass''​ și ''​a2.mass''​ pot avea valori diferite).
-  * **Membrii statici**: aparțin clasei și sunt împărtășiți de către toate obiectele (ex. toate merele pot avea aceeași constantă gravitațională).+  * **Membrii statici**: aparțin clasei și sunt împărtășiți de către toate obiectele (ex. toate merele pot avea aceeași constantă gravitațională ​''​gravAcc''​).
  
 ^Tip^Apartenență^Accesat prin^Cum este valoarea reținută în memorie^ ^Tip^Apartenență^Accesat prin^Cum este valoarea reținută în memorie^
Line 1086: Line 1087:
 </​spoiler>​ </​spoiler>​
  
-<note tip> 
-Folosiți variabile statice pentru a avea **configurații împărtășite** sau **constante la nivel de clase**, nu pentru a stoca date per obiect. 
-</​note>​ 
  
 ====Accesarea membrilor statici==== ====Accesarea membrilor statici====
Line 1117: Line 1115:
    ​public static void main(String[] args) {    ​public static void main(String[] args) {
       float g = Apple.gravAcc;​       float g = Apple.gravAcc;​
 +      ​
 +      // Corect, dar nepreferat
 +      Apple a1 = new Apple();
 +      float g = a1.gravAcc;
    }    }
 } }
poo-ca-cd/laboratoare/design-avansat-de-clase.1760384104.txt.gz · Last modified: 2025/10/13 22:35 by florian_luis.micu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0