Lopullinen ja staattinen

Anonim

Matematiikassa ja tieteessä vakio on termi, joka merkitsee tietyn arvon, kuten "π", joka on käytännöllinen nimi numerolle 3.14159. Java on sellainen vakio. Nämä ovat muuttujia, jotka alle (a) eivät kuulu mihinkään esineeseen ja osa (b) eivät muuta niiden arvoa niiden asettamisen jälkeen. Muuttujan ilmoituksen staattinen sana osoittaa, että muuttuja ei kuulu mihinkään esineeseen. Vastaavaa avainsanaa sanotaan, että muuttujan arvo asetetaan vain kerran, eikä se muutu. Tämä on avainsanan loppu. Tämä avainsana ei ole rajoitettu staattisiin muuttujiin, mutta sitä voidaan käyttää esimerkiksi muuttujien, paikallisten muuttujien ja muuttujien kanssa, jotka ovat parametrijärjestelmiä. Kun julistat muuttujan lopulliseksi, näytät kaikille, että muuttuessa olemassaolon aikana on sama arvo. Vielä tärkeämpää on, että kääntäjä havaitsee jokaisen yrittävän muuttaa niin sanotun muuttujan arvoa ja ilmoittaa sen virheeksi. Mitä tulee Java-terminologiaan, muuttuja, joka julistetaan staattiseksi ja lopulliseksi, kutsutaan vakioksi.

Mikä on lopullinen?

Lopullista muunninta voidaan käyttää useilla paikoilla Java-ohjelmointikielellä. Täällä käsitellään sen yleisintä käyttöä. Lopullinen modifioijaa voidaan soveltaa paikallisen muuttujan, funktion argumentin ja ei-staattisten tai staattisten jäsenten muuttujien ilmoittamiseen. Tässä yhteydessä muuttuva modifioija muuntaa vakioksi. Käännöskielen kääntäjä tarkistaa, onko jokin koodi yrittänyt muokata arvoa, ja tällaiset yritykset merkitään virheeksi. Tässä on esimerkki.

lopullinen int arvo = 17;

Globaaleja vakioita käytetään staattisten jäsenten muuttujien kanssa tässä modifioijalla; esimerkiksi java.lang.Math-muuttujassa PI, on täsmennetty

julkinen staattinen lopullinen kaksinkertainen PI = 3,14159265358979323846;

Voimme soveltaa lopullista modifiointia toimeksiantoon. Lopullista merkitystä ei enää voida kumota - se on sen lopullinen toteutus. Abstrakteja menetelmiä ei voida julistaa lopulliseksi - se, että ne ovat abstraktteja, ne puuttuvat täytäntöönpanosta; se ei todellakaan voi olla niiden lopullinen tila. Tässä on esimerkki.

julkinen lopullinen int meaningLife () {

palautus 42;

}

Voimme soveltaa lopullista modifiointia luokan ilmoitukseen. Lopullisella merkinnällä varustettu luokka ei voi enää periytyä - se on sen lopullinen täytäntöönpano. Selvästi abstrakti luokka ei voi olla lopullinen samaan aikaan. Tässä on esimerkki

julkinen lopullinen luokka Suljettu {

// …

}

Yksi äärellisistä luokan esimerkkeistä on java.lang.String-luokka - se on äärellinen, joten kukaan ei voi periä sitä ja näin päästä käsiksi jäsenmuuttujiinsa.

Mikä on staattinen?

Staattiset muuttujat eivät kuulu tiettyyn luokan esiintymään. Staattiset muuttujat kuuluvat itse luokkaan ja muistiin on vain yksi sijainti riippumatta siitä, kuinka monta kopiota luokkaan luodaan muistiin. Ei-staattiset muuttujat kuuluvat luokkaan kuuluville näytteille - jokaisella luokan esiintymällä on oma kopio tällaisista muuttujista. Staattiset muuttujat kuuluvat luokkaan - muistissa oleva luokka säilyttää tällaisten muuttujien arvot; kaikki näyteluokat pitävät siksi samaa sisältöä, joten voimme tarkastella staattisten muuttujien jakamista kaikkien luokkien koon välillä. Päivittämällä arvo-muuttujaa uusi arvo näkyy automaattisesti kaikille kyseisen luokan esiintymille. Staattista suodatinta voidaan soveltaa mihin tahansa laillisesti ilmoitettuun elementtiin luokassa. Jäsenmuuttujien tapauksessa seurauksena on, että tällaiset jäsenmuuttujat tallennetaan muistiin vain yhdessä paikassa. Mitä tapahtuu, jos se on menetelmä? Ilmoittamalla menetelmä staattiseksi, viesti on sama: asiaankuuluva menetelmä ei kuulu luokkien luokkiin vaan itse luokkaan. Näin ollen staattiset menetelmät eivät saa piilotettua viittausta kohteeseen, jolle ne soitetaan puhelulle; staattisissa vertailumenetelmissä tämä ei ole käytettävissä. Itse asiassa staattisten menetelmien käyttäminen koko objektin sisällä on yhtä hämmentävä kuin käyttää staattisia jäsenmuuttujia viittaamalla tähän viitteeseen: kummassakin tapauksessa on parempi kirjoittaa vain luokan nimi, piste ja kutsuvan menetelmän nimi.

Ero finaalin ja staattisen välillä

  1. muuttuja

Staattinen tarkoittaa muuttujaa, joka on yhteinen kaikille objekteille, jotka instantioivat tietyn luokan, kun lopullinen määrittelee vakion.

  1. Menetelmä

Staattinen on menetelmä, joka on sama jokaiselle kohteelle annettuun luokkaan - kutsutaan myös luokan jäseneksi. tämä on tärkein menetelmä. Lopullista menetelmää ei voida käsitellä perinnöllisessä luokassa.

  1. luokka

Lopullista ei voi laajentaa, ts. Ei sallita alaluokkia. Staattinen ei koske luokkaa.

  1. Arvo

Yksinkertaisesti sanottuna lopullinen osoitti, että arvoa ei voi muuttaa (ohittaa). Staattinen arvo on asetettu oletusarvoon, mutta se voidaan aloittaa uudelleen.

Final vs Staattinen: vertailukaavio

Tiivistelmä lopullisesta ja staattisesta

  • Avaintoiminnon staattinen tarjoaa pääsyn myös silloin, kun objektia (esim.) Ei ole. Merkittävät luokat julistetaan avainsanaa staattisena. Jos et halua, että jotkin muutokset menevät myöhemmin ohjelman ohjelmaan tai haluat kääntäjän tarkistaa ja estää, voit muuttaa lupauksen lopulliseksi. Alustuksessa on staattinen lohko. Alustuksen staattinen lohko julistetaan avainasemaksi suluissa. Tällainen lohko suoritetaan kerran luokkien lukemisen aikana ja alustaa tavallisesti luokan staattiset jäsenet.