Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Pri spustení programu Java , program sa najprv vybudovaný do byte kódu . Konkrétne to znamená , že kompilátor kontroluje všetky premenné , metódy a objekty deklarované v kóde a vytvára akúsi žiadosť o týchto premenných a metóda názvy . Tieto mená , alebo " symboly " predstavujú umiestnenie v pamäti premennej , objektu alebo metódy . Ak ste programátor pokúsi použiť premennú alebo metódu , bez najprv ju deklarovať , bude kompilátor dať " nemožno nájsť symbol " chyba označujúci , že neexistuje premenná alebo metóda podľa dodaného menom .
Java triedy a dedičnosť
Ako sú definované symboly stáva trochu viac nuáns , keď hovorí o Java dedičnosti triedy . Pri vytváraní Java objekty , môžete odvodiť tieto objekty z iných tried , ktoré už existujú . Pritom , odvodená trieda " dedia " metódy a premenné základnej triedy . V prípade dedičstva , metóda alebo premenná deklarovaná v základnej triede je priamo odkazuje z triedy dedenia , čo znamená , tieto symboly sú k dispozícii v triede deriving .
Java konštruktérov a dedičnosť
najmä metóda vo všetkých triedach , odvodené alebo nie, je konštruktor . " Default " konštruktor alokuje pamäť pre objekt , keď ho konkretizovať vo svojom programe . Avšak môžete vytvoriť vlastný konštruktor inicializovať hodnoty premenných alebo spustiť iné podprogramy , keď je vytvorený objekt . Pri vytváraní vlastnej konštruktor pre triedu odvodenú od inej triedy , však, musíte explicitne volať konštruktor základnej triedy .
Metóda symboly a " Super " Kĺúčové
konštruktor ilustruje dôležitý aspekt tried : často , metódy odvodenej triedy " ovládanie " metódy základnej triedy pomocou rovnaký názov metódy, definovať nové funkcie . Avšak, rovnako ako v prípade konstruktoru odvodené triedy metódy musí vyvolať metódu základné triedy z nejakého dôvodu . Ak sa pokúsite priamo volať metódu základnej triedy , dostanete " symbol nemôže byť nájdený" Chyba . Napríklad prepísanie " out " metódu základnej triedy je možné vykonať , ale nemôžete volať základnej triedy verzie " out " priamo . Namiesto toho musíte použiť " super " kľúčové slovo , aby hovor , ako ukazuje tento príklad :
Trieda X { public void returnNum ( int x ) { return x ; } }
trieda Y rozširuje X { public void returnNum ( ) { int z = super ( 5 ) ; //volanie trieda X je " returnNum " methodreturn z * z ; } }