Erinevus lõpliku ja staatilise vahel

Matemaatikas ja teaduses on konstant termin, mis tähistab teatud väärtust, näiteks 'π', mis on praktiline nimi numbrile 3.14159. Java-l on oma tüüpi konstandid. Need on muutujad, mis vastavalt punktile a ei kuulu ühelegi objektile ja alapunkt b ei muuda nende väärtust pärast nende seadistamist. Staatiline sõna muutuja deklaratsioonis näitab, et muutuja ei kuulu ühegi objekti juurde. Seal on sarnane märksõna, mis ütleb, et muutuja väärtus seatakse ainult üks kord ja see ei muutu. See on märksõna lõpp. See märksõna pole piiratud staatiliste muutujatega, vaid seda saab kasutada koos esinemismuutujate, kohalike muutujatega ja isegi parameetrimeetoditega muutujatega. Kuulutades muutuja lõplikuks, näitate kõigile, et muutuja olemasolu ajal on sama väärtus. Veelgi olulisem on see, et kompilaator tuvastab iga katse muuta nii deklareeritud muutuja väärtust ja teatab sellest veana. Nagu Java terminoloogias, nimetatakse muutujat, mis kuulutatakse staatiliseks ja lõplikuks, konstandiks.

Mis on lõplik?

Lõplikku modifikaatorit saab Java programmeerimiskeeles kasutada mitmes kohas. Siin käsitleme selle kõige tavalisemat kasutamist. Lõplikku modifikaatorit saab kasutada lokaalse muutuja, funktsiooniargumendi ja mittestaatilise või staatilise liikme muutuja deklareerimisel. Selles kontekstis teisendab muutuja muutuja konstandiks. Tõlkekeele tõlkija kontrollib, kas mõni kood üritab väärtust muuta, ja sellised katsed märgitakse tõrkena. Siin on näide.

lõplik int väärtus = 17;

Selle modifikaatori staatilisi liikmemuutujaid kasutatakse globaalsete konstantidena; Näiteks java.lang.Math-muutuja PI-s on see täpselt öeldud

avalik staatiline lõplik kahekordne PI = 3,14159265358979323846;

Funktsiooni deklaratsioonile saame rakendada lõplikku modifikaatorit. Lõpuga tähistatud funktsiooni ei saa enam tühistada - see on selle lõplik rakendamine. Abstraktseid meetodeid ei saa lõplikuks kuulutada - fakt, et need on abstraktsed, tähendab, et neid ei rakendata; see ei saa kindlasti olla nende lõplik olek. Siin on näide.

avalik lõplik int tähendusLife ()

tagasi 42;

Klassideklaratsioonile saame rakendada lõpliku modifikaatori. Klass, mis on tähistatud lõpuga, ei saa enam pärida - see on selle lõplik rakendamine. On selge, et abstraktne klass ei saa samal ajal olla lõplik. Siin on näide

avalik lõpuklass suletud

//…

Üks piiratud klassi näide on java.lang.String-klass - see on piiratud, nii et keegi ei saaks seda pärida ja seega pääseda juurde liikme muutujatele.

Mis on staatiline?

Staatilised muutujad ei kuulu klassi ühte eksemplari. Staatilised muutujad kuuluvad klassi enesesse ja mälus on ainult üks koht, sõltumata selle klassi eksemplaride arvust, mis mällu luuakse. Mittestaatilised muutujad kuuluvad klassi isenditesse - igal klassi eksemplaril on nendest muutujatest oma koopia. Staatilised muutujad kuuluvad klassi - mälu klass hoiab selliste muutujate väärtusi; seetõttu näevad kõik valimiklassid sama sisu, nii et võime staatilisi muutujaid jagada kõigi klassisuuruste vahel. Väärtusmuutuja värskendamisega on uus väärtus automaatselt nähtav kõigile selle klassi eksemplaridele. Staatilist filtrit saab rakendada mis tahes klassis legaalselt deklareeritud elemendi jaoks. Liikmesuse muutujate korral salvestatakse sellised liikmemuutujad mällu ainult ühes kohas. Mis juhtub, kui see on meetod? Meetodi staatiliseks kuulutades on sõnum sama: asjaomane meetod ei kuulu klasside klassidesse, vaid klassi ise. Järelikult ei saa staatilised meetodid varjatud viidet objektile, mille peale nad kutsutakse; staatiliste võrdlusmeetodite korral pole see saadaval. Staatiliste meetodite kutsumine kogu objekti ulatuses on tõepoolest sama segane kui juurdepääs staatilistele liikmesmuutujatele, viidates sellele viitele: mõlemal juhul on parem lihtsalt kirjutada klassi nimi, punkt ja kutsumismeetodi nimi..

Erinevus lõpliku ja staatilise vahel

  1. Muutuv

Staatiline tähistab muutujat, mis on ühine kõigile objektidele, mis antud klassi kiirendavad, lõplik aga defineerib konstandi.

  1. Meetod

Staatiline on meetod, mis on igas objektis antud klassis sama - nimetatakse ka klassi liikmeks, nt. selline on peamine meetod. Lõplikku meetodit ei saa päritud klassis töödelda.

  1. Klass

Finaali ei saa laiendada, st ei luba alamklasse. Staatiline ei kehti klassi kohta.

  1. Väärtus

Lihtsalt öeldes tähendas final, et väärtust ei saa muuta (alistada). Staatiline väärtus on vaikimisi seatud, kuid seda saab uuesti initsialiseerida.

Lõpp vs staatiline: võrdlusdiagramm

Lõpliku ja staatilise kokkuvõte

  • Võti staatiline annab juurdepääsu ka siis, kui objekti (eksemplari) pole. Silmapaistvad klassid deklareeritakse läbi võtmesõna staatiline. Kui te ei soovi, et mõne programmi muudatused hiljem käiksid, või kui soovite, et kompilaator kontrolliks ja keelaks, saate selle lubaduse lõplikuks muuta. Initsialiseerimiseks on staatiline plokk. Initsialiseerimise staatiline plokk kuulutatakse sulgude ette võtmestaatiliseks. Seda tüüpi blokeerimine toimub üks kord, klasside lugemise ajal, ja see initsialiseerib tavaliselt klassi staatilised liikmed.