Razlika med končnim in statičnim

V matematiki in naravoslovju je konstanta izraz, ki označuje določeno vrednost, na primer 'π', kar je praktično ime za številko 3.14159. Java ima svoje vrste konstante. To so spremenljivke, ki pod (a) ne pripadajo nobenemu predmetu in pod (b) ne spremenijo svoje vrednosti, ko so nastavljene. Statična beseda v deklaraciji spremenljivke kaže, da spremenljivka ne pripada nobenemu predmetu. Obstaja podobna ključna beseda, ki pravi, da bo vrednost spremenljivke nastavljena samo enkrat in se ne bo spremenila. To je ključna beseda končna. Ta ključna beseda ni omejena na statične spremenljivke, ampak jo je mogoče uporabiti s spremenljivkami primerkov, lokalnimi spremenljivkami in celo s spremenljivkami, ki so metode parametrov. Če spremenljivko razglasite za končno, vsem pokažete, da bo spremenljivka med obstojem imela isto vrednost. Še pomembneje pa je, da bo prevajalnik zaznal vsak poskus spremembe vrednosti tako deklarirane spremenljivke in jo sporočil kot napako. Kar zadeva terminologijo Java, spremenljivko, ki je deklarirana kot statična in končna, imenujemo konstanta.

Kaj je končno?

Končni modifikator se lahko uporablja na več mestih v programskem jeziku Java. Tu bomo opisali njegovo najpogostejšo uporabo. Končni modifikator se lahko uporabi za deklaracijo lokalne spremenljivke, argument funkcije in nestatične ali statične spremenljivke člana. V tem kontekstu spremenljivka spremenljivke pretvori v konstanto. Prevajalec jezikov za prevajanje bo preveril, ali neka koda poskuša spremeniti vrednost, in takšni poskusi bodo označeni kot napaka. Tu je primer.

končna int vrednost = 17;

Statične članske spremenljivke s tem modifikatorjem se uporabljajo kot globalne konstante; na primer v spremenljivki PI java.lang.Math je natančno navedeno

javni statični končni dvojni PI = 3,14159265358979323846;

Za deklaracijo funkcije lahko uporabimo končni modifikator. Funkcije, označene s končnim, ni več mogoče razveljaviti - to je njegova končna izvedba. Abstraktnih metod ni mogoče razglasiti za dokončne - dejstvo, da so abstraktne, pomeni, da jih ni mogoče izvajati; zagotovo ne more biti njihovo končno stanje. Tu je primer.

javno končno int pomenLife ()

povratek 42;

Za deklaracijo razreda lahko uporabimo končni modifikator. Razreda, ki je označen s končnim, ne more več podedovati - to je njegova končna izvedba. Jasno je, da abstraktni razred hkrati ne more biti dokončen. Tu je primer

javni zaključni razred Zaprto

//…

Eden od primerov končnih razredov je razred java.lang.String - dokončen je, zato ga nihče ne bi mogel podedovati in s tem dobiti dostop do svojih spremenljivk članov.

Kaj je statično?

Statične spremenljivke ne sodijo v določen primer razreda. Statične spremenljivke pripadajo samemu razredu in v pomnilniku je le eno mesto, ne glede na število kopij tega razreda, ki so ustvarjene v pomnilniku. Nestatične spremenljivke pripadajo vzorcem razreda - vsak primerek razreda ima svojo kopijo takšnih spremenljivk. Statične spremenljivke spadajo v razred - razred v pomnilniku ohranja vrednosti takšnih spremenljivk; vsi vzorčni razredi zato vidijo isto vsebino, zato lahko štejemo, da se statične spremenljivke delijo med vse velikosti razredov. Z posodobitvijo spremenljivke vrednosti bo nova vrednost samodejno vidna vsem primerkom tega razreda. Statični filter je mogoče uporabiti za kateri koli element, ki je zakonito prijavljen znotraj razreda. V primeru spremenljivk članstva je posledica tega, da bodo takšne spremenljivke članice shranjene v pomnilniku le na enem mestu. Kaj se zgodi, če gre za metodo? Z razglasitvijo metode za statično je sporočilo enako: ustrezna metoda ne spada v razrede razredov, temveč v sam razred. Posledično statične metode ne bodo deležne skrite reference na predmet, nad katerim so poklicane; pri statičnih referenčnih metodah to ni na voljo. Dejansko je sklicevanje statičnih metod prek predmeta enako zmedeno kot dostop do spremenljivk statičnih članov s sklicevanjem na to referenco: v obeh primerih je bolje preprosto napisati ime razreda, točko in ime klicne metode.

Razlika med končnim in statičnim

  1. Spremenljivka

Statična pomeni spremenljivko, ki je skupna vsem objektom, ki dajejo določen razred, medtem ko končna določa konstanto.

  1. Metoda

Statična je metoda, ki je enaka za vsak predmet danega razreda - imenujemo ga tudi član razreda, npr. takšna je glavna metoda. Končne metode ni mogoče obdelati v podedovanem razredu.

  1. Razred

Končnega ni mogoče razširiti, tj. Ne dovoljuje podrazredov. Statika ne velja za razred.

  1. Vrednost

Preprosto povedano, končno je bilo navedeno, da vrednosti ni mogoče spremeniti (preglasiti). Statična vrednost je nastavljena na privzeto vrednost, vendar jo je mogoče znova aktivirati.

Final vs. Static: Primerjalni grafikon

Povzetek končnega in statičnega

  • Ključni statik dela omogoča dostop tudi, kadar ni predmeta (primera). Pomembni razredi so deklarirani s ključno besedo statik. Če ne želite, da vrednost nekaterih sprememb kasneje v programu zaide, ali če želite, da prevajalnik preveri in prepove, lahko to obljubo spremenite v končno. Za inicializacijo obstaja statični blok. Statični blok za inicializacijo je deklariran kot ključni statični pred oklepajem. Ta vrsta bloka se izvede enkrat med branjem razredov in ponavadi inicializira statične člane razreda.