Matematiikassa ja luonnontieteessä vakio on termi, joka ilmaisee tietyn arvon, kuten 'π', joka on käytännöllinen nimi numerolle 3.14159. Java: lla on sellaiset vakionsa. Nämä ovat muuttujia, jotka kohdan (a) yhteydessä eivät kuulu mihinkään objektiin ja ala (b) eivät muuta arvoaan kun ne on asetettu. Staattinen sana muuttujan ilmoituksessa osoittaa, että muuttuja ei kuulu mihinkään objektiin. On samanlainen avainsana, joka sanoo, että muuttujan arvo asetetaan vain kerran eikä muutu. Tämä on avainsana lopullinen. Tämä avainsana ei ole rajoitettu staattisiin muuttujiin, vaan sitä voidaan käyttää ilmentymän muuttujien, paikallisten muuttujien ja jopa muuttujien kanssa, jotka ovat parametrimenetelmiä. Julistamalla muuttujan lopulliseksi osoitat kaikille, että muuttujan olemassaolon aikana on sama arvo. Vielä tärkeämpää on, että kääntäjä havaitsee jokaisen yrityksen muuttaa niin julistetun muuttujan arvoa ja ilmoittaa siitä virheenä. Java-terminologian suhteen staattisena ja lopullisena ilmoitettua muuttujaa kutsutaan vakiona.
Lopullista muokkainta voidaan käyttää Java-ohjelmointikielen useissa paikoissa. Tässä käsittelemme sen yleisintä käyttöä. Lopullista modifikaattoria voidaan käyttää paikallisen muuttujan, funktioargumentin ja ei-staattisen tai staattisen jäsenmuuttujan ilmoittamiseen. Tässä yhteydessä muuttujan modifikaattori muuttuu vakiona. Käännöskielen kääntäjä tarkistaa, yrittääkö jokin koodi muuttaa arvoa, ja tällaiset yritykset merkitään virheeksi. Tässä on esimerkki.
lopullinen int-arvo = 17;
Staattisia jäsenmuuttujia tämän modifikaattorin kanssa käytetään globaaleina vakioina; Esimerkiksi java.lang.Math-muuttujassa PI on tarkka
julkinen staattinen lopullinen kaksinkertainen PI = 3,14159265358979323846;
Voimme soveltaa lopullista muunnosta toimintoilmoitukseen. Finaalilla merkittyä toimintoa ei voida enää ohittaa - se on sen lopullinen toteutus. Abstrakteja menetelmiä ei voida julistaa lopullisiksi - se, että ne ovat abstrakteja, tarkoittaa, että niitä ei toteuteta; se ei todellakaan voi olla heidän perimmäinen tila. Tässä on esimerkki.
julkinen lopullinen int tarkoitusLife ()
paluu 42;
Voimme soveltaa lopullista muunnosta luokan ilmoitukseen. Luokka, joka on merkitty finaalilla, ei voi enää periä - se on sen lopullinen toteutus. On selvää, että abstrakti luokka ei voi olla lopullinen samaan aikaan. Tässä on esimerkki
julkinen finaaliluokka suljettu
// ...
Yksi rajallisista luokan esimerkkeistä on java.lang.String-luokka - se on äärellinen, joten kukaan ei voisi periä sitä ja saada siten pääsyä sen jäsenmuuttujiin.
Staattiset muuttujat eivät kuulu luokan tiettyyn esiintymään. Staattiset muuttujat kuuluvat itse luokkaan, ja muistissa on vain yksi sijainti riippumatta siitä, kuinka monta luokkaa muistissa luodaan. Ei-staattiset muuttujat kuuluvat luokanäytteisiin - jokaisella luokan esiintymällä on oma kopio sellaisista muuttujista. Staattiset muuttujat kuuluvat luokkaan - luokka muistissa pitää tällaisten muuttujien arvot; Siksi kaikissa näytteen luokissa on sama sisältö, joten voimme katsoa, että staattiset muuttujat voidaan jakaa kaikkien luokkakokojen kesken. Päivittämällä arvomuuttuja, uusi arvo tulee automaattisesti näkyviin luokan kaikille esiintymisille. Staattista suodatinta voidaan käyttää mihin tahansa luokan sisällä laillisesti ilmoitettuun elementtiin. Jäsenmuuttujien tapauksessa seurauksena on, että tällaiset jäsenmuuttujat tallennetaan muistiin vain yhdessä paikassa. Mitä tapahtuu, jos se on menetelmä? Julistamalla menetelmä staattiseksi, viesti on sama: merkityksellinen menetelmä ei kuulu luokkoluokkiin, vaan itse luokkaan. Niinpä staattiset menetelmät eivät saa piilotettua viittausta objektiin, jonka päälle niitä kutsutaan; staattisissa vertailumenetelmissä tämä ei ole käytettävissä. Itse asiassa staattisten menetelmien käyttäminen objektin läpi on yhtä hämmentävää kuin staattisille jäsenmuuttujille pääsy viittaamalla tähän viitteeseen: molemmissa tapauksissa on parempi yksinkertaisesti kirjoittaa luokan nimi, piste ja kutsuvan menetelmän nimi..
Staattinen tarkoittaa muuttujaa, joka on yhteinen kaikille kohteille, jotka hetkellisittävät tietyn luokan, kun taas lopullinen määrittelee vakion.
Staattinen on menetelmä, joka on sama jokaiselle objektille annetussa luokassa - sitä kutsutaan myös luokan jäseneksi esim. sellainen on päämenetelmä. Lopullista menetelmää ei voida käsitellä perinnöllisessä luokassa.
Loppua ei voida laajentaa, ts. Se ei salli alaluokkia. Staattinen ei koske luokkaa.
Yksinkertaisesti sanottuna lopullinen merkitsi, että arvoa ei voida muuttaa (ohittaa). Staattinen arvo on asetettu oletusarvoon, mutta se voidaan alustaa uudelleen.