Halloweenská akce! Na stránce s dobitím bodů zadej dole kód STRASIDELNYCH20 a získej porci +20% bodů zdarma!
Akce končí 31.10. o půlnoci.
Avatar
Unda
Člen
Avatar
Unda:4. července 12:19

Zdravím vysvětlil by mi někdo prosím stručně kdy je dobré dělat atributy statické a kdy je lepší se tomu vyhnout?
Máme na škole učitele, který si to tam dělá jak chce a není ani schopný říct proč zrovna teď to má statické či nikoli :(, Děkuju :)

př.

private static final Seznam seznam;
private final Seznam seznam;
 
Odpovědět 4. července 12:19
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:4. července 13:13

Podstata statických atributů a metod je hlavně v tom, že je můžeš volat, aniž bys měl vytvořenou instanci dané třídy. Když bys to chtěl říct hodně polopatě, tak největší účel těchto metod/atributů je hlavně v tom, že ještě před tím, než nějakou instanci vytvoříš, tak nejdřív nastavíš potřebné parametry.
Příklady: Máš třídu dítě. Ale nevíš, s jakým pohlavím se ti narodí. Tak vytvoříš statickou metodu static void setSex(String) a tu zavoláš ještě před tím, než vytvoříš nové dítě. Ale fakan už bude mít po vytvoření (narození) nastavené pohlaví:)

Nebo máš naprosto praktický příklad. Potřebuješ dejme tomu evidovat, kolik instancí máš vytvořených. Tak ve statické proměnné budeš uchovávat množství instancí. A každý konstruktor, který vytvoří novou instanci, tak ten počet zvýší o 1.

A nebo taky a to nejspíš používáš denně - main metoda. Toto je i důvod, proč je main metoda statická. Protože se volá, aniž by existovala nějaká instance. Proto je tam to slovíčko static.

PS: můžeš si klidně překládat, že když je něco static, tak to prostě patří třídě a můžeš to používat nehledě na tom, jestli máš nebo nemáš objekt;)
Proto se taky někdy říká třídní proměnná/třídní metoda a instanční proměnná/instanční metoda.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +4 4. července 13:13
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.