Skirtumas tarp galutinio ir statinio

Matematikoje ir moksle konstanta yra terminas, žymintis tam tikrą reikšmę, tokią kaip „π“, kuri yra praktinis skaičiaus 3.14159 pavadinimas. „Java“ turi tam tikras konstantas. Tai yra kintamieji, kurie pagal a punktą nepriklauso jokiam objektui ir b punktas nekeičia savo vertės, kai tik yra nustatyti. Statinis žodis kintamojo deklaracijoje rodo, kad kintamasis nepriklauso jokiam objektui. Yra panašus raktinis žodis, kuris sako, kad kintamojo vertė bus nustatyta tik vieną kartą ir nesikeis. Tai yra raktinis žodis galutinis. Šis raktinis žodis neapsiriboja statiniais kintamaisiais, bet gali būti naudojamas su egzempliorių kintamaisiais, vietiniais kintamaisiais ir net su kintamaisiais, kurie yra parametrų metodai. Skelbdami kintamąjį kaip galutinį, jūs visiems parodysite, kad egzistavimo metu kintamasis turės tą pačią vertę. Dar svarbiau, kad sudarytojas aptiktų kiekvieną bandymą pakeisti taip deklaruojamo kintamojo vertę ir praneštų apie klaidą. Kalbant apie „Java“ terminologiją, kintamasis, kuris deklaruojamas kaip statinis ir galutinis, vadinamas konstanta.

Kas yra galutinis?

Galutinis modifikatorius gali būti naudojamas keliose „Java“ programavimo kalbos vietose. Čia aptarsime dažniausiai pasitaikantį jo naudojimą. Galutinis modifikatorius gali būti pritaikytas deklaruojant vietinius kintamuosius, funkcijos argumentus ir nestatinius ar statinius narių kintamuosius. Šiame kontekste kintamasis modifikatorius virsta konstanta. Vertimo kalbos vertėjas patikrins, ar koks nors kodas bando pakeisti reikšmę, ir tokie bandymai bus pažymėti kaip klaida. Štai pavyzdys.

galutinė vidinė vertė = 17;

Statiniai narių kintamieji su šiuo modifikatoriumi naudojami kaip visuotinės konstantos; pavyzdžiui, java.lang.matematikos kintamajame PI jis tiksliai nurodytas

viešas statinis galutinis dvigubas PI = 3.14159265358979323846;

Galutinį modifikatorių galime pritaikyti funkcijos deklaracijoje. Funkcijos, pažymėtos galutine, nebegalima panaikinti - tai yra jos galutinis įgyvendinimas. Abstraktūs metodai negali būti paskelbti galutiniais - tai, kad jie yra abstraktūs, reiškia, kad jie nėra įgyvendinti; tai tikrai negali būti jų galutinė būsena. Štai pavyzdys.

vieša galutinė int reikšmėLife ()

grąžinti 42;

Galime pritaikyti galutinį modifikatorių klasės deklaracijai. Klasė, pažymėta galutine, nebegali paveldėti - tai yra jo galutinis įgyvendinimas. Aišku, abstrakti klasė tuo pačiu metu negali būti galutinė. Štai pavyzdys

vieša galutinė klasė uždaryta

//…

Vienas iš baigtinių klasių pavyzdžių yra java.lang.String klasė - ji yra baigtinė, todėl niekas negalėjo jos paveldėti ir tokiu būdu gauti prieigą prie jos narių kintamųjų.

Kas yra statinė?

Statiniai kintamieji nepriklauso tam tikram klasės egzemplioriui. Statiniai kintamieji priklauso pačiai klasei, o atmintyje yra tik viena vieta, neatsižvelgiant į atmintyje sukuriamų tos klasės egzempliorių skaičių. Nestatiniai kintamieji priklauso klasės pavyzdžiams - kiekvienas klasės egzempliorius turi savo tokių kintamųjų kopiją. Statiniai kintamieji priklauso klasei - klasė atmintyje išlaiko tokių kintamųjų reikšmes; todėl visos imties klasės mato tą patį turinį, todėl galime manyti, kad statiniai kintamieji gali būti paskirstomi visiems klasės dydžiams. Atnaujinus vertės kintamąjį, nauja vertė bus automatiškai matoma visiems tos klasės egzemplioriams. Statinį filtrą galima pritaikyti bet kuriam elementui, teisėtai deklaruojamam klasės viduje. Narystės kintamųjų atveju pasekmė yra tai, kad tokie narių kintamieji bus saugomi atmintyje tik vienoje vietoje. Kas atsitiks, jei tai metodas? Paskelbus metodą statiniu, pranešimas yra tas pats: atitinkamas metodas priklauso ne klasių klasėms, o pačiai klasei. Taigi statiniai metodai negaus paslėptos nuorodos į objektą, per kurį jie iškviečiami; naudojant statinius pamatinius metodus, to nėra. Iš tiesų, statinių metodų taikymas visame objekte yra toks pat painus, kaip prieiga prie statinių narių kintamųjų, remiantis šia nuoroda: abiem atvejais geriau tiesiog parašyti klasės pavadinimą, tašką ir skambinimo metodo pavadinimą..

Skirtumas tarp galutinio ir statinio

  1. Kintamas

Statinė reiškia kintamąjį, būdingą visiems objektams, kurie sukuria tam tikrą klasę, o galutinis apibrėžia konstantą.

  1. Metodas

Statinis yra metodas, kuris yra vienodas kiekvienam objektui, kuriam suteikta klasė, taip pat vadinamas klasės nariu, pvz. toks yra pagrindinis metodas. Galutinis metodas negali būti apdorotas paveldimoje klasėje.

  1. Klasė

Finalas negali būti išplėstas, t. Y. Neleidžia poklasių. Statinė klasė netaikoma.

  1. Vertė

Paprasčiau tariant, galutinis reiškė, kad vertės negalima pakeisti (nepaisyti). Statinė vertė yra nustatyta į numatytąją vertę, tačiau ją galima pakartotinai inicijuoti.

Galutinis ir statinis: palyginimo diagrama

Galutinio ir statinio santrauka

  • Pagrindinė darbo statinė suteikia prieigą net tada, kai nėra objekto (egzemplioriaus). Garsios klasės deklaruojamos naudojant raktinį žodį statinis. Jei nenorite, kad vėliau keistųsi kai kurių programos pakeitimų vertė, ar norite, kad kompiliatorius patikrintų ir uždraustų, galite pažadą pakeisti galutiniu. Inicijavimui yra statinis blokas. Statinis inicializacijos blokas deklaruojamas kaip pagrindinis statinis prieš skliaustelius. Šis blokas atliekamas vieną kartą, klasių skaitymo metu, ir paprastai jis inicijuoja statinius klasės narius.