nazaj naprej glavno kazalo pisanje java programov objekti razredi in vmesniki deklaracija razreda deklaracija razreda deklarira ime razreda in e nekatere druge lastnosti kot recimo superrazred razreda tip razreda itd deklaracija razreda mora vsebovati ključno besedo class in ime razreda ki ga definirate ta minimalna deklaracija je videti takole class imerazreda neslednji delček kode deklarira razred z imenom imaginarynumber imaginarno tevilo class imaginarynumber imena razredov morajo biti dovoljeni java identifikatorji in jih po dogovoru piemo z veliko začetnico pogosto je taka minimalna deklaracija vse kar potrebujemo v splonem pa lahko z deklaracijo razreda deklariramo superrazred razreda navedemo vmesnike ki so v razredu realizirani deklariramo ali je razred abstrakten dokončen ali javen deklaracija superrazreda razreda v jeziku java ima vsak razred svoj superrazred Če ga ne navedemo je to avtomatsko oče vseh razredov razred object deklariran v paketu java lang prejnja deklaracija razreda imaginarynumber je zato implicitno deklarirala objekt kot svoj superrazred več o razredu object lahko preberete v poglavju razred java lang object Če pa elite eksplicitno deklarirati superrazred lahko to napravite s ključno besedo extends ki ji sledi ime superrazreda vse skupaj pa vrinete med besedo class in zaviti oklepaj kot na primer class imerazreda extends imesuperrazreda recimo da elimo kot superrazred razreda imaginarynumber postaviti namesto razreda object razred number potem bi napisali class imaginarynumber extends number s tem smo določili razredu imaginarynumber superrazred number razred number je del paketa java lang in je superrazred celih realnih in ostalih tevil jasno je da zgornja deklaracija samodejno pomeni da je razred imaginarynumber podrazred razreda number izdelava podrazreda je torej zelo preprosta vendar moramo ponavadi poskrbeti e za nekaj drugih ukrepov kot recimo prekrivanje metod več o izdelavi podrazredov lahko preberete v poglavju podrazredi superrazredi in dedovanje realizacija vmesnikov v razredu ob deklaraciji razreda lahko navedemo tudi katere vmesnike realizira če jih sploh kaj je torej vmesnik vmesnik deklarira mnoico metod in konstant ne da bi jih v resnici realiziral razred pa realizira vmesnik tako da realizira vse njegove metode da nek razred realizira enega ali več vmesnikov deklariramo s ključno besedo implements ki ji sledi seznam z vejico ' ' ločenih vmesnikov ki jih razred realizira zamislimo si vmesnik z imenom arithmetic ki definira metode add subtract itd razred imaginarynumber lahko deklarira realizacijo tega vmesnika na naslednji način class imaginarynumber extends number implements arithmetic in s tem zagotavlja da bo poskrbel za realizacijo metod add subtract in ostalih ki so deklarirane v vmesniku arithmetic po dogovoru piemo ključno besedo implements za ključno besedo extends če slednja obstaja metode deklariranih v vmesniku arithmetic se morajo ujemati z metodami realiziranih v razredu imaginarynumber več o vmesnikih lahko preberete v poglavju izdelava in uporaba vmesnikov deklaracija abstraktnega razreda včasih predstavlja razred ki ga definiramo nek abstraktni koncept in obstoj objektov tega razreda ne bi bil smiseln vzemimo nek primer iz resničnega sveta na primer hrano ste e kdaj videli primerek hrane ne videli pa ste primerke korenja jabolk čokolade itd beseda hrana predstavlja abstraktni koncept za stvari ki jih lahko jemo zato obstoj primerka hrane tudi ni smiseln podobno elimo pri objektno usmerjenem programiranju včasih predstaviti abstraktne koncepte ne elimo pa njihovih primerkov razred number iz paketa java lang na primer predstavlja abstraktni koncept tevil kot tak njegov primerek ni smiseln je pa uporaben kot superrazred razredov kot so integer in float ki predstavljajo primerke celih in realnih tevil razrede kot je number ki predstavljajo abstraktne koncepte in njihovi primerki niso smiselni imenujemo abstraktni razredi abstract classes abstraktni razred je uporaben le kot superrazred in lahko vsebuje le abstraktne metode metode ki niso realizirane ampak samo deklarirane abstraktni razred deklariramo s ključno besedo abstract pred ključno besedo class v deklaraciji razreda abstract class number več o abstraktnih razredih lahko preberete v poglavju pisanje abstraktnih razredov in metod deklariranje razreda kot final java omogoča deklariranje nekega razreda kot končnega final kar pomeni da iz njega ni mogoče izpeljati nobenega razreda več obstajata vsaj dva razloga za uporabo tega mehanizma varnostni in načrtovalni varnost en način ki ga hackerji uporabljajo pri spodkopavanju računalnikih sistemov je izdelava podrazreda nekega razreda in zamenjava tega razreda z originalnim tak podrazred se na prvi pogled obnaa kot originalni razred v ozadju pa počne čisto druge stvari kot recimo kodovanje sistemu vdor med zasebne informacije itd to lahko preprečite tako da proglasite svoj razred za dokončen final in s tem preprečite izdelavo podrazredov iz njega razred string razred za delo z znakovnimi nizi iz paketa java lang je dokončen razred ravno iz tega razloga razred string je tako pomemben za delovanje prevajalnika in interpreterja da mora okolje ob uporabi razreda string vedno zagotoviti da bo uporabljen razred java lang string in noben drug tako je delo z znakovnimi nizi vedno enako in varno prevajalnik bo javil napako in prekinil svoje delo če boste eleli prevesti podrazred dokončnega razreda pa tudi interpreter vsebuje varovalni mehanizem ki med izvajanjem programa preverja če je podrazred morda izpeljan iz dokončnega razreda načrtovanje drugi razlog za uporabo dokončnih razredov izhaja iz zakonitosti objektno usmerjenega načrtovanja ko se odločite da je nek razred doivel svojo končno stopnjo razvoja ga je pametno proglasiti za dokončnega razred deklariramo kot dokončen s pomočjo ključne besede final pred ključno besedo class spodnji primer deklarira razred imaginarynumber kot dokončen final class imaginarynumber extends number implements arithmetic verjetno ste e pomislili na to da nek razred ne more biti hkrati dokončen final in abstrakten abstract z drugimi besedami nek abstraktni razred ki nima realiziranih svojih metod tudi ne more biti dokončen to vam bo potrdil tudi prevajalnik ki bo v tem primeru javil napako deklaracija javnih razredov zadnji modifikator ki ga lahko uporabite v deklaraciji razreda je modifikator public javen s tem omogočite da lahko razred uporabljajo tudi objekti ki se nahajajo zunaj trenutnega paketa Če tega ne napiete je razred dostopen samo tistim objektom ki so v istem paketu z njim razred imaginarynumber je modro deklarirati kot javen tako da imajo tudi drugi objekti in razredi dostop do njega tako se njegova deklaracija spremeni v public final class imaginarynumber extends number implements arithmetic po dogovoru se ključna beseda public napie na začetku deklaracije razreda povzetek o deklaraciji razreda deklaracija razreda je v sploni obliki videti takole class imerazreda implements ime navmesnikov besede med oglatima oklepajema so izbirne deklaracija razreda definira naslednje vidike razreda modifikatorji deklarirajo razred kot abstract final ali public imerazreda deklarira razredovo ime imesuperrazreda je ime superrazreda razreda imerazreda imenavmesnikov je seznam z vejico ločenih imen vmesnikov ki jih razred imerazreda realizira v deklaraciji razreda sta obvezni le ključna beseda class in ime razreda ostale so izbirne Če jih ne navedemo privzame java prevajalnik določene vrednosti ne dokončen ne javen ne abstrakten podrazred razreda object ki ne realizira nobenega vmesnika nazaj naprej glavno kazalo pisanje java programov objekti razredi in vmesniki