A statická metóda patrí do triedy a nestatická metóda patrí do objektu triedy. K statickým metódam je možné pristupovať priamo z triedy, zatiaľ čo nestatické metódy (alebo metódy inštancie, ako ich rád nazývam) musia byť prístupné z inštancie.
Kedy by mala byť metóda statická vs. nestatická?
A statická metóda patrí do samotnej triedy a nestatická (aka inštancia) metóda patrí ku každému objektu, ktorý je vygenerovaný z tejto triedy. Ak vaša metóda robí niečo, čo nezávisí od individuálnych charakteristík svojej triedy, urobte ju statickou (zmenší sa tým pôdorys programu).
Kedy by ste použili nestatickú metódu?
Nestatická metóda v jazyku Java môže pristupovať k statickým metódam a premenným takto:
- Nestatická metóda môže pristupovať k akejkoľvek statickej metóde bez vytvorenia inštancie triedy.
- Nestatická metóda môže pristupovať k akejkoľvek statickej premennej bez vytvorenia inštancie triedy, pretože statická premenná patrí do triedy.
Kedy by ste mali používať statické funkcie?
Keď chcete mať premennú, ktorá má vždy rovnakú hodnotu pre každý objekt triedy, navždy a navždy, urobte ju statickou. Ak máte metódu, ktorá nepoužíva žiadne premenné inštancie ani metódy inštancie, pravdepodobne by ste ju mali nastaviť ako statickú.
Aký je rozdiel medzi statickým a nestatickým poľom?
Statické premenné alebo polia patria do triedy a nie do žiadneho objektu triedy. Statická premenná sa inicializuje pri načítaní triedy za behu. Nestatické polia sú polia inštancií objektu. Je možné k nim pristupovať alebo ich vyvolať iba prostredníctvom odkazu na objekt.