Konstandi rakendamiseks või tähistamiseks programmi kirjutamise ajal kasutame käsku konstant või kirjutuskaitstud.
Kuid mille poolest need erinevad ja mis on nende erineva kasutamise eesmärk, kui neil mõlemal on sama konstantide määramise ülesanne? Nii et selguse huvides arutame nende kahe erinevusi.
Võtme tagasivõtmine
- Konstandid on muutumatud muutujad, mille väärtused ei saa pärast deklareerimist muutuda, samas kui kirjutuskaitstud muutujad lähtestatakse ainult üks kord ja neid ei saa pärast nende esialgset määramist muuta.
- Konstante hinnatakse kompileerimise ajal, kirjutuskaitstud muutujaid aga käitusajal.
- Konstandid toetavad ainult väärtustüüpe, samas kui kirjutuskaitstud muutujad võivad sisaldada väärtus- ja viitetüüpe.
Püsiv vs kirjutuskaitstud
Püsimuutujaid hinnatakse kompileerimise ajal ja neid ei saa käitusajal muuta. Neid kasutatakse väärtuste määratlemiseks, mis eeldatavasti ei muutu. Kirjutuskaitstud on märksõna, mida kasutatakse objektorienteeritud programmeerimiskeeltes, et deklareerida, et muutujat saab määrata ainult üks kord ja seda saab hinnata käitusajal.
Konstandi määratlemisel kasutatakse konstanti märksõna. Erinevus seisneb selles, et see on kirjutatud koostamise käigus. Selle tulemusena on see kompileerimisaja konstant.
Selle tulemusena kirjutate programmi ja kompilaator teisendab selle IL-koodiks. Vahepealne keelekood on IL-kood. Konstant, mida soovite määratleda, on teisendamise ajal vahetult olemas.
Selle tulemusena jääb konstant alati samaks.
Teisest küljest, kui programm on kirjutuskaitstud, peate selle esmalt kirjutama, kuid ei pea seda otse initsialiseerima. Teil on võimalus valida üks kahest teest.
Saate selle lähtestada kas kirjutuskaitstud märksõna deklareerimise ajal või klassi konstruktoris. Selle tulemusel proovite seda lähtestada väljaspool deklaratsioon või konstruktor põhjustab tõrke.
Võrdlustabel
Võrdlusparameetrid | Pidev | Loe ainult |
---|---|---|
Määratlus | Kirjutuskaitstud välja loomiseks peate kasutama kirjutuskaitstud märksõna. | Kirjutuskaitstud välja loomiseks peate kasutama kirjutuskaitstud märksõna. |
Laps | Seda nimetatakse kompileerimise ajakonstandiks | Seda nimetatakse tööaja konstandiks |
Kas seda saab meetodi raames määratleda? | Jah | Ei |
Kas seda saab pärast deklareerimist muuta? | Ei | Jah |
Kas saate sellega staatilisi modifikaatoreid kasutada? | Ei | Jah |
Mis on Constant?
Arvutiprogrammeerimise arendamisel tuleb järgida mõningaid juhiseid. Seal on palju märksõnu, mis pannakse kokku ja öeldakse, kuidas programmi sobival viisil käivitada.
Seetõttu on enne konkreetse termini täpsel ajal määratlemist oluline mõista fraasi tegelikku tähtsust.
Ja on palju termineid, millel näib olevat sama näiline tähendus, kui neid kasutatakse erinevates kontekstides. Üht sellist korda, pidevat märksõna, käsitleme selles artiklis.
Konstantsete ja kirjutuskaitstud märksõnade erinevuse tundmine on programmeerija jaoks oluline nende eristamiseks.
Kuna väärtus tuleb määrata koostamise ajal, nimetatakse konstantset märksõna kompileerimisaja konstandiks.
Kui olete väärtuse määranud, ei saa te seda programmeerimise kaudu uuesti muuta; vastasel juhul kuvatakse tõrge. Tehingut ei ole võimalik muuta, kui see on määratud.
Vaikimisi on konstant staatiline. Numbri- ja märgikonstante on mitut erinevat tüüpi. Vigade vältimiseks tuleb väärtused määrata koostamise ajal.
Konstantsete märksõnadega ei saa kasutada konstantseid teisendajaid. Pidev märksõna kasutatakse ka absoluutsete konstantide või väärtuste jaoks, mis on universaalsed konstandid.
Mis on kirjutuskaitstud?
Siin keskendume püsivate ja kirjutuskaitstud märksõnade olulisele erinevusele. Mõlemad on hämmingus, kuna usuvad, et nende ülesandeks on programmis konstanti määramine.
Kuid need ei ole samad ja neid kasutatakse erineval viisil. Pidevast märksõnast ja selle kasutamisest on juba juttu olnud. Siin on mõned viisid, kuidas neil kahel vahet teha.
Arvutikeeles kirjutuskaitstud märksõnade puhul on neli stsenaariumi, mille puhul saab kasutada kirjutuskaitstud märksõna.
Kirjutuskaitstud märksõna, erinevalt konstantsetest märksõnadest, nimetatakse sageli käitusaegseks konstandiks, kuna seda saab käitusajal deklareerida.
Väärtuse saab määrata funktsioonikonstruktoris ja see jääb endiselt samasse klassi. Kirjutuskaitstud märksõnu saab erinevalt konstantsetest märksõnadest määrata deklaratsiooniväljas või funktsioonikonstruktoris mitu korda.
Kirjutuskaitstud välja ei saa määrata, kui funktsiooni konstruktor on juba olemas.
Selle tulemusena on kirjutuskaitstud väärtustüüpide väli muutumatu; teisest küljest peaksid viitetüübid sisaldama kirjutuskaitstud käsu objektiga ühilduvaid andmeid.
Siis on kirjutuskaitstud struktuur, kirjutuskaitstud eksemplari liikmed ja viite kirjutuskaitstud meetodi tagastamine. Igal väljal on erinev tähendus. Üldiselt võib seda tüüpi konstantide määramiseks kasutada kirjutuskaitstud märksõna.
Peamised erinevused püsiva ja kirjutuskaitstud vahel
- Kui soovite luua konstantse välja, kasutage pidevat märksõna, samas kui soovite luua kirjutuskaitstud välja, kasutage kirjutuskaitstud märksõna.
- Kompileerimisaja konstanti nimetatakse konstantiks, kirjutuskaitstud konstanti aga käitusaja konstantiks.
- Meetod võib määrata konstanti, kuid kirjutuskaitstud mitte.
- Kui konstant on märgitud, ei saa seda muuta, samas kui kirjutuskaitstud saab deklareerida mitu korda.
- Staatilisi modifikaatoreid ei saa rakendada konstantidele, kuigi neid saab rakendada kirjutuskaitstud muutujatele.
Viimati värskendatud: 11. juunil 2023
Sandeep Bhandaril on arvutite bakalaureusekraad Thapari ülikoolist (2006). Tal on 20-aastane kogemus tehnoloogia vallas. Ta tunneb suurt huvi erinevate tehnikavaldkondade, sealhulgas andmebaasisüsteemide, arvutivõrkude ja programmeerimise vastu. Tema kohta saate tema kohta rohkem lugeda bio-leht.
Ma näen, kuidas see algajatele programmeerijatele segadusse ajab.
See on nii kuiv teema, kuid esitatud kaasahaaravalt ja selgelt.
Ma pean teiega selles osas eriarvamusele jääma, minu arvates on see väga tüütu.
Nõus! Ootasin, et hakkan igav, kuid see oli suurepärane lugemine.
Võrdlustabel on väga kasulik, üldiselt suurepärane artikkel.
Kasulik selgitus, aitäh!
Päris huvitav mõista nende kahe erinevusi ja sarnasusi.
Üsna informatiivne, kuid pole ikka veel kindel, millal neid kasutada. Kas keegi oskab täpsustada?
Muidugi aitan selles hea meelega!