Info

Ďalšie informácie o používaní konštánt v Jave

Ďalšie informácie o používaní konštánt v Jave

V skutočnom svete existuje veľa hodnôt, ktoré sa nikdy nezmenia. Štvorec bude mať vždy štyri strany, PI na tri desatinné miesta budú vždy 3,142 a deň bude mať vždy 24 hodín. Tieto hodnoty zostávajú konštantné. Pri písaní programu má zmysel ich reprezentovať rovnakým spôsobom - ako hodnoty, ktoré sa po priradení premennej nezmenia. Tieto premenné sú známe ako konštanty.

Deklarovanie premennej ako konštanty

Pri deklarovaní premenných sme ukázali, že je ľahké priradiť hodnotu k premennej int:

int numberOfHoursInADay = 24;

Vieme, že táto hodnota sa v skutočnom svete nikdy nezmení, takže sa ubezpečujeme, že sa to v programe nezmení. To sa dosiahne pridaním modifikátora kľúčových slov

konečné:

konečné int NUMBER_OF_HOURS_IN_A_DAY = 24;

Navyše k

konečnéKľúčové slovo by ste si mali všimnúť, že prípad názvu premennej sa zmenil na veľké písmená podľa štandardnej konvencie pomenovávania Java. Vďaka tomu je oveľa ľahšie zistiť, ktoré premenné sú vo vašom kóde konštanty.

Ak sa teraz pokúsime zmeniť hodnotu

NUMBER_OF_HOURS_IN_A_DAY:

konečné int NUMBER_OF_HOURS_IN_A_DAY = 24;
NUMBER_OF_HOURS_IN_A_DAY = 36;

od kompilátora dostaneme nasledujúcu chybu:

nemôže priradiť hodnotu konečnej premennej NUMBER_OF_HOURS_IN_A_DAY

To isté platí pre ktorúkoľvek z ďalších primitívnych premenných typu údajov. Ak ich chcete zmeniť na konštanty, jednoducho pridajte

konečnéich kľúčové slovo.

Kde vyhlásiť konštanty

Rovnako ako v prípade normálnych premenných chcete obmedziť rozsah konštánt na miesto, kde sa používajú. Ak je hodnota konštanty potrebná iba v metóde, uveďte ju tam:

public static int calculationHoursInDays (int days)

{

konečná int NUMBER_OF_HOURS_IN_A_DAY = 24;

dni návratu * NUMBER_OF_HOURS_IN_A_DAY;

}

Ak sa používa vo viac ako jednej metóde, deklarujte ju v hornej časti definície triedy:

verejná trieda AllAboutHours {

súkromné ​​statické finále int NUMBER_OF_HOURS_IN_A_DAY = 24;

public int calculationHoursInDays (int days)

{

dni návratu * NUMBER_OF_HOURS_IN_A_DAY;

}

public int calculationHoursInWeeks (int týždňov)

{

konečná int NUMBER_OF_DAYS_IN_A_WEEK = 7;

návratové týždne * NUMBER_OF_DAYS_IN_A_WEEK * NUMBER_OF_HOURS_IN_A_DAY;

}

}

Všimnite si, ako som pridal aj modifikátory kľúčových slov

súkromnéa

statickýdo variabilného colného vyhlásenia z roku 2006

NUMBER_OF_HOURS_IN_A_DAY, To znamená, že konštantu môže používať iba jej trieda (teda

súkromnérozsah), ale rovnako ľahko by ste z neho mohli urobiť

verejnosťkonštantná, ak chcete, aby k nej mali prístup iné triedy.

statickýkľúčové slovo je umožniť zdieľanie hodnoty konštanty medzi všetkými inštanciami objektu. Pretože je to rovnaká hodnota pre každý vytvorený objekt, musí mať iba jednu inštanciu.

Použitie konečného kľúčového slova s ​​objektmi

Je veľmi dôležité si uvedomiť, že pokiaľ ide o objekty, Java nepodporuje konštanty, ako by ste mohli očakávať. Ak k objektu priradíte premennú pomocou

konečnéto znamená, že premenná bude vždy obsahovať odkaz na tento objekt. Nie je možné zmeniť odkaz na iný objekt. Neznamená to však, že sa obsah objektu nemôže zmeniť.

Stručná poznámka o kľúčovom slove Const

Možno ste si v zozname vyhradených slov všimli, že sa volá kľúčové slovo

const, Toto sa nepoužíva s konštantami, v skutočnosti sa vôbec nepoužíva v jazyku Java.