华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java基礎(chǔ) >> 文章內(nèi)容

Java常量的定義和分類(lèi)

來(lái)源:中華考試網(wǎng)  [2020年10月24日]  【

  常量是指在程序的整個(gè)運(yùn)行過(guò)程中值保持不變的量。在這里要注意常量和常量值是不同的概念,常量值是常量的具體和直觀的表現(xiàn)形式,常量是形式化的表現(xiàn)。通常在程序中既可以直接使用常量值,也可以使用常量。

  下面我們來(lái)系統(tǒng)地認(rèn)識(shí)一下 Java 中的常量值,以及定義常量的方法。

  常量值

  常量值又稱(chēng)為字面常量,它是通過(guò)數(shù)據(jù)直接表示的,因此有很多種數(shù)據(jù)類(lèi)型,像整型和字符串型等。下面一一介紹這些常量值。

  整型常量值

  Java 的整型常量值主要有如下 3 種形式。

  十進(jìn)制數(shù)形式:如 54、-67、0。

  八進(jìn)制數(shù)形式:Java 中的八進(jìn)制常數(shù)的表示以 0 開(kāi)頭,如 0125 表示十進(jìn)制數(shù) 85,-013 表示十進(jìn)制數(shù) -11。

  十六進(jìn)制數(shù)形式:Java 中的十六進(jìn)制常數(shù)的表示以 0x 或 0X 開(kāi)頭,如 0x100 表示十進(jìn)制數(shù) 256,-0x16 表示十進(jìn)制數(shù) -22。

  整型(int)常量默認(rèn)在內(nèi)存中占 32 位,是具有整數(shù)類(lèi)型的值,當(dāng)運(yùn)算過(guò)程中所需值超過(guò) 32 位長(zhǎng)度時(shí),可以把它表示為長(zhǎng)整型(long)數(shù)值。長(zhǎng)整型類(lèi)型則要在數(shù)字后面加 L 或 1, 如 697L,表示一個(gè)長(zhǎng)整型數(shù),它在內(nèi)存中占 64 位。

  實(shí)型常量值

  Java 的實(shí)型常量值主要有如下兩種形式。

  十進(jìn)制數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn),如 12.34、-98.0。

  科學(xué)記數(shù)法形式:如 1.75e5 或 32&E3,其中 e 或 E 之前必須有數(shù)字,且 e 或 E 之后的數(shù)字必須為整數(shù)。

  Java 實(shí)型常量默認(rèn)在內(nèi)存中占 64 位,是具有雙精度型(double)的值。如果考慮到需要節(jié)省運(yùn)行時(shí)的系統(tǒng)資源,而運(yùn)算時(shí)的數(shù)據(jù)值取值范圍并不大且運(yùn)算精度要求不太高的情況,可以把它表示為單精度型(float)的數(shù)值。

  單精度型數(shù)值一般要在該常數(shù)后面加 F 或 f,如 69.7f,表示一個(gè) float 型實(shí)數(shù),它在內(nèi)存中占 32 位(取決于系統(tǒng)的版本高低)。

  布爾型常量值

  Java 的布爾型常量只有兩個(gè)值,即 false(假)和 true(真)。

  字符型和字符串常量值

  Java 的字符型常量值是用單引號(hào)引起來(lái)的一個(gè)字符,如 'e'、E'。需要注意的是,Java 字符串常量值中的單引號(hào)和雙引號(hào)不可混用。雙引號(hào)用來(lái)表示字符串,像 "11"、"d" 等都是表示單個(gè)字符的字符串。

  除了以上所述形式的字符常量值之外,Java 還允許使用一種特殊形式的字符常量值來(lái)表示一些難以用一般字符表示的字符,這種特殊形式的字符是以開(kāi)頭的字符序列,稱(chēng)為轉(zhuǎn)義字符。

  注意:這里表示字符和字符串的單引號(hào)和雙引號(hào)都必須是英語(yǔ)輸入環(huán)境下輸入的符號(hào)。

  表 1 列出了 Java 中常用的轉(zhuǎn)義字符及其表示的意義。

表 1 Java中常用的轉(zhuǎn)義字符
轉(zhuǎn)義字符 說(shuō)明
\ddd 1~3 位八進(jìn)制數(shù)所表示的字符
\uxxxx 1~4 位十六進(jìn)制數(shù)所表示的字符
\' 單引號(hào)字符
\" 雙引號(hào)字符
\\ 雙斜杠字符
\r 回車(chē)
\n 換行
\b 退格
\t 橫向跳格

  定義常量

  常量不同于常量值,它可以在程序中用符號(hào)來(lái)代替常量值使用,因此在使用前必須先定義。常量與變量(在《Java變量的聲明和初始化》一節(jié)中講解)類(lèi)似也需要初始化,即在聲明常量的同時(shí)要賦予一個(gè)初始值。常量一旦初始化就不可以被修改。它的聲明格式為:

  Java 語(yǔ)言使用 final 關(guān)鍵字來(lái)定義一個(gè)常量,其語(yǔ)法如下所示:

  final dataType variableName = value

  其中,final 是定義常量的關(guān)鍵字,dataType 指明常量的數(shù)據(jù)類(lèi)型,variableName 是變量的名稱(chēng),value 是初始值。

  final 關(guān)鍵字表示最終的,它可以修改很多元素,修飾變量就變成了常量。例如,以下語(yǔ)句使用 final 關(guān)鍵字聲明常量。

  public class HelloWorld { // 靜態(tài)常量 public static final double PI = 3.14; // 聲明成員常量 final int y = 10; public static void main(String[] args) { // 聲明局部常量 final double x = 3.3; }}

  常量有三種類(lèi)型:靜態(tài)常量、成員常量和局部常量。

  代碼第 3 行的是聲明靜態(tài)常量,使用在 final 之前 public static 修飾。public static 修飾的常量作用域是全局的,不需要?jiǎng)?chuàng)建對(duì)象就可以訪問(wèn)它,在類(lèi)外部訪問(wèn)形式為 HelloWorld. PI。這種常量在編程中使用很多。

  代碼第 5 行聲明成員常量,作用域類(lèi)似于成員變量,但不能修改。代碼第 9 行聲明局部常量,作用域類(lèi)似于局部變量,但不能修改。

  在定義常量時(shí),需要注意如下內(nèi)容:

  在定義常量時(shí)就需要對(duì)該常量進(jìn)行初始化。

  final 關(guān)鍵字不僅可以用來(lái)修飾基本數(shù)據(jù)類(lèi)型的常量,還可以用來(lái)修飾對(duì)象的引用或者方法。

  為了與變量區(qū)別,常量取名一般都用大寫(xiě)字符。

  當(dāng)常量被設(shè)定后,一般情況下不允許再進(jìn)行更改,如果更改其值將提示錯(cuò)誤。例如,如下圖中定義常量 AGE 并賦予初值,如果更改 AGE 的值,那么在編譯時(shí)將提示不能重合賦值錯(cuò)誤。

責(zé)編:fushihao
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
团风县| 江口县| 唐山市| 育儿| 清原| 威远县| 南投市| 乳源| 定西市| 临武县| 巴林右旗| 额济纳旗| 蓝山县| 镇江市| 邢台市| 石渠县| 灵宝市| 富源县| 曲周县| 洮南市| 徐闻县| 扶绥县| 马龙县| 台北市| 甘肃省| 麟游县| 沂南县| 民勤县| 龙井市| 牡丹江市| 九台市| 周口市| 沂南县| 兰坪| 南靖县| 铁岭市| 台东市| 满洲里市| 奉新县| 益阳市| 广南县|