Differences

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

Link to this comparison view

poo-ca-cd:laboratoare:obiecte-in-java [2025/10/15 04:31]
florian_luis.micu [Proprietăți]
poo-ca-cd:laboratoare:obiecte-in-java [2025/10/15 04:36] (current)
florian_luis.micu [Metode statice]
Line 1112: Line 1112:
 <note tip> <note tip>
 Variabilele statice **pot** fi accesate în constructori,​ întrucât sunt inițializate odată cu încărcarea clasei. Variabilele statice **pot** fi accesate în constructori,​ întrucât sunt inițializate odată cu încărcarea clasei.
 +</​note>​
 +
 +
 +
 +
 +
 +====Metode statice====
 +
 +O **metodă statică** este o metodă care aparține clasei și poate fi apelată **fără a crea un obiect** al clasei, având acces doar la membri statici.
 +
 +<code java>
 +class Apple {
 +    public static final int SMALL = 0, MEDIUM = 1, LARGE = 2;
 +    ​
 +    public int size;
 +
 +    // Funcționează
 +    public static String[] getAppleSizes() {
 +       ​return new String[] { "​SMALL",​ "​MEDIUM",​ "​LARGE"​ };
 +    }
 +    ​
 +    // Eroare, "​size"​ nu este static
 +    public static int getSize() {
 +       ​return size;
 +    }
 +}
 +</​code>​
 +
 +<note important>​
 +  * Metodele statice pot accesa doar **variabile statice**, deoarece membrii statici sunt inițializați **înainte de crearea instanțelor**. Astfel, o variabilă care aparține instanței, cum este ''​size'',​ nu ar fi încă inițializată în momentul în care metoda statică ''​getSize()''​ este apelată.
 +  * În **metodele sau blocurile statice**, cuvântul cheie ''​this''​ nu poate fi folosit, deoarece el face referire la **instanța curentă a clasei**. În momentul în care codul static este executat, **nu există** încă niciun obiect creat, deci nu există nicio instanță la care ''​this''​ să se refere.
 +</​note>​
 +
 +===== =====
 +
 +<note tip>
 +  * Folosiți ''​static''​ pentru **constante**,​ **contoare**,​ **configurații globale** sau **metode utilitare** (ex. ''​Math.sqrt()''​). Puteți găsi câteva exemple concrete în secțiunea **[Nice to know]** de mai jos. 
 +  * Nu folosiți foarte des ''​static'',​ deoarece poate strica **încapsularea** ceea ce va face codul mai greu de testat.
 </​note>​ </​note>​
  
Line 1194: Line 1232:
 </​code>​ </​code>​
 </​spoiler>​ </​spoiler>​
- 
-<note tip> 
-Folosiți ''​static''​ pentru **constante**,​ **contoare**,​ **configurații globale** sau **metode utilitare** (ex. ''​Math.sqrt()''​). Nu folosiți foarte des ''​static'',​ deoarece poate strica **încapsularea** ceea ce va face codul mai greu de testat. 
-</​note>​ 
- 
- 
- 
-====Metode statice==== 
- 
-O **metodă statică** este o metodă care aparține clasei și poate fi apelată **fără a crea un obiect** al clasei, având acces doar la membri statici. 
- 
-<code java> 
-class Apple { 
-    public static final int SMALL = 0, MEDIUM = 1, LARGE = 2; 
-    ​ 
-    public int size; 
- 
-    // Funcționează 
-    public static String[] getAppleSizes() { 
-       ​return new String[] { "​SMALL",​ "​MEDIUM",​ "​LARGE"​ }; 
-    } 
-    ​ 
-    // Eroare, "​size"​ nu este static 
-    public static int getSize() { 
-       ​return size; 
-    } 
-} 
-</​code>​ 
- 
-<note tip> 
-Metodele statice pot accesa doar **variabile statice**, deoarece membrii statici sunt inițializați **înainte de crearea instanțelor**. Astfel, o variabilă care aparține instanței, cum este ''​size'',​ nu ar fi încă inițializată în momentul în care metoda statică ''​getSize()''​ este apelată. 
-</​note>​ 
- 
-<note important>​ 
-În **metodele sau blocurile statice**, cuvântul cheie ''​this''​ nu poate fi folosit, deoarece el face referire la **instanța curentă a clasei**. În momentul în care codul static este executat, **nu există** încă niciun obiect creat, deci nu există nicio instanță la care ''​this''​ să se refere. 
-</​note>​ 
  
 <​hidden>​ <​hidden>​
poo-ca-cd/laboratoare/obiecte-in-java.1760491896.txt.gz · Last modified: 2025/10/15 04:31 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