Info

Lær om bruk av konstanter i Java

Lær om bruk av konstanter i Java

Det er mange verdier i den virkelige verden som aldri vil endre seg. Et kvadrat vil alltid ha fire sider, PI til tre desimaler vil alltid være 3.142, og en dag vil alltid ha 24 timer. Disse verdiene forblir konstante. Når du skriver et program, er det fornuftig å representere dem på samme måte - som verdier som ikke vil bli endret når de er tilordnet en variabel. Disse variablene er kjent som konstanter.

Å erklære en variabel som en konstant

I deklarerende variabler viste vi at det er enkelt å tilordne en verdi til en int-variabel:

int antallOfHoursInADay = 24;

Vi vet at denne verdien aldri kommer til å endre seg i den virkelige verden, så vi sørger for at den ikke blir i programmet. Dette gjøres ved å legge til nøkkelordmodifisereren

endelig:

endelig int NUMBER_OF_HOURS_IN_A_DAY = 24;

I tillegg til det

endelignøkkelord du burde ha lagt merke til at tilfellet med variabelnavnet er endret til å være store bokstaver i henhold til standard Java-navnekonvensjon. Dette gjør det mye lettere å se hvilke variabler som er konstanter i koden din.

Hvis vi nå prøver å endre verdien av

NUMBER_OF_HOURS_IN_A_DAY:

endelig int NUMBER_OF_HOURS_IN_A_DAY = 24;
NUMBER_OF_HOURS_IN_A_DAY = 36;

vi får følgende feil fra kompilatoren:

kan ikke tilordne en verdi til den endelige variabelen NUMBER_OF_HOURS_IN_A_DAY

Det samme gjelder noen av de andre primitive datatypevariablene. For å gjøre dem til konstanter bare legg til

endelignøkkelord til erklæringen.

Hvor skal jeg erklære konstanter

Som med normale variabler vil du begrense omfanget av konstanter til hvor de brukes. Hvis verdien av konstanten bare er nødvendig i en metode, så erklær den der:

offentlig statisk int beregningHoursInDays (int dager)

{

avsluttende int NUMBER_OF_HOURS_IN_A_DAY = 24;

retur dager * NUMBER_OF_HOURS_IN_A_DAY;

}

Hvis den brukes av mer enn én metode, så erklær den øverst i klassedefinisjonen:

offentlig klasse All AboutHours {

privat statisk endelig int NUMBER_OF_HOURS_IN_A_DAY = 24;

public int calculHoursInDays (int dager)

{

retur dager * NUMBER_OF_HOURS_IN_A_DAY;

}

public int calculHoursInWeeks (int uker)

{

endelig int NUMBER_OF_DAYS_IN_A_WEEK = 7;

retur uker * NUMBER_OF_DAYS_IN_A_WEEK * NUMBER_OF_HOURS_IN_A_DAY;

}

}

Legg merke til hvordan jeg også har lagt til søkeordmodifiserere

privatog

statisktil variabel erklæring av

NUMBER_OF_HOURS_IN_A_DAY. Dette betyr at konstanten bare kan brukes av sin klasse (derav

privatomfang), men du kan like gjerne gjøre det til

offentligkonstant hvis du vil at andre klasser skal ha tilgang til det. De

statisknøkkelord er å la verdien av konstanten deles mellom alle forekomster av et objekt. Ettersom det er den samme verdien for hvert objekt som er opprettet, trenger det bare å ha en forekomst.

Bruke det endelige nøkkelordet med objekter

Det er veldig viktig å innse at når det kommer til objekter, støtter Java ikke konstanter som du kanskje forventer. Hvis du tilordner en variabel til et objekt ved å bruke

endelignøkkelord betyr det at variabelen bare noen gang har referansen til det objektet. Det kan ikke endres for å referere til et annet objekt. Det betyr imidlertid ikke at innholdet i objektet ikke kan endres.

En kort merknad om Const-nøkkelordet

Du har kanskje lagt merke til i listen over reserverte ord at det er et nøkkelord som heter

konst. Dette brukes ikke med konstanter, faktisk brukes det ikke i det hele tatt på Java-språket.


Video, Sitemap-Video, Sitemap-Videos