Statická konštanta – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Statická konštanta – Java – Fórum – Programujte.comStatická konštanta – Java – Fórum – Programujte.com

 

lime0
Duch
16. 11. 2013   #1
-
0
-

Ahoj, potrebujem počas behu programu zadefinovať statickú konštantu, niečo takéto sa nedá:

public class trieda {

private static final int x;

...

public trieda() { //konštruktor

...

}

...

metoda init() { //inicializačná metoda

x = premenna;

}

}

-pretože mi píše v konštruktore variable x might not have been initialized, a keď niekde chcem priradiť hodnotu do x tak sa to nedá, to musím pri deklarovaní konštanty ju hneď aj zadefinovať? dá sa potom vyriešiť môj problém aby som ju zadefinoval až v behu programu?

Nahlásit jako SPAM
IP: 87.244.219.–
Flowy0
Věrný člen
16. 11. 2013   #2
-
0
-

aky ma pre teba zmysel aby to bolo final ked ju nejdes definovat nastalo? ak by si ju definoval v init co by to malo podla teba spravit ak by si zavolal init znova?

Nahlásit jako SPAM
IP: 178.41.199.–
https://github.com/Flowy
lime0
Duch
16. 11. 2013   #3
-
0
-

Ja ju práveže chcem definovať na stálo, ale až vo funkcií init, ktorá jej priradí získanú hodnotu, ale to sa asi nedá aj keď ja init v programe budem volať iba raz, no nevadí

Nahlásit jako SPAM
IP: 87.244.219.–
Flowy0
Věrný člen
16. 11. 2013   #4
-
0
-

#3 lime
tym ze si ju dal private tak je dostupna len pre samotny objekt ... ak ju nespristupnis nejakym inym setterom tak init bude pre nu jediny setter a teda sa bude dat nastavit len tu (alebo si sprav metodu setVar ktora sa bude dat volat len raz a to prave z init) ... jediny problem ktory musis riesit ak to chces mat 100% ze sa nastavi len raz ze spristupnis init len raz a dalsie volania budu vracat nejaky typ chyby ... kazdopadne najjednoduchsie budes mat ak das funkcie init do konstruktora

sry ... viditelna pre celu triedu kedze je to static

Nahlásit jako SPAM
IP: 178.41.199.–
https://github.com/Flowy
lime0
Duch
16. 11. 2013   #5
-
0
-

#4 Flowy
mne je zbytočný setter pretože ju chcem nastaviť iba v metode init(), ktorá je v tej istej triede ako tá konštanta (a kazdá premenná/konštanta je viditeľná pre celú triedu to je jedno či je static alebo nie),

Nahlásit jako SPAM
IP: 87.244.219.–
Flowy0
Věrný člen
16. 11. 2013   #6
-
0
-

v kazdom objekte ktory vytvoris na zaklade tejto triedy budes chciet asi volat init ... ak nespravis static setter tak kazdy dalsi objekt ti tu premennu v metode init premeni (alebo to mozes osetrit tu ale asi to nebude moc pekne) ... tym si simulujes funkciu final na lokalnej urovni (ktora staci kedze pouzivas private) 

ak si myslis ze vsetky premenne su viditelne pre celu triedu tak potom naco je podla teba atribut static?

vlastne dolezite je tiez spravit getter v ktorom budes odovzdavat len hodnotu tvojej premennej a nie odkaz na nu

Nahlásit jako SPAM
IP: 178.41.199.–
https://github.com/Flowy
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Konstanta v triede — založil mrvo

Konstanta charu... — založil Maty

Statická ip — založil Onsi

Staticka metoda — založil jonhnw

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý