Java編程那些事兒18——變數和常量作者:陳躍峰出自:http://blog.csdn.net/mailbomb
3.6 變數和常量 在程式中存在大量的資料來代表程式的狀態,其中有些資料在程式的運行過程中值會發生改變,有些資料在程式運行過程中值不能發生改變,這些資料在程式中分別被叫做變數和常量。 在實際的程式中,可以根據資料在程式運行中是否發生改變,來選擇應該是使用變數代表還是常量代表。
3.6.1 變數 變數代表程式的狀態。程式通過改變變數的值來改變整個程式的狀態,或者說得更大一些,也就是實現程式的功能邏輯。 為了方便的引用變數的值,在程式中需要為變數設定一個名稱,這就是變數名。例如在2D遊戲程式中,需要代表人物的位置,則需要2個變數,一個是x座標,一個是y座標,在程式運行過程中,這兩個變數的值會發生改變。 由於Java語言是一種強型別的語言,所以變數在使用以前必須首先聲明,在程式中聲明變數的文法格式如下: 資料類型 變數名稱; 例如:int x; 在該文法格式中,資料類型可以是Java語言中任意的類型,包括前面介紹到的基礎資料型別 (Elementary Data Type)以及後續將要介紹的複合資料型別。變數名稱是該變數的標識符,需要符合標識符的命名規則,在實際使用中,該名稱一般和變數的用途對應,這樣便於程式的閱讀。資料類型和變數名稱之間使用空格進行間隔,空格的個數不限,但是至少需要1個。語句使用“;”作為結束。 也可以在聲明變數的同時,設定該變數的值,文法格式如下: 資料類型 變數名稱 = 值; 例如:int x = 10; 在該文法格式中,前面的文法和上面介紹的內容一致,後續的“=”代表賦值,其中的“值”代表具體的資料。在該文法格式中,要求值的類型需要和聲明變數的資料類型一致。 也可以一次聲明多個相同類型的變數,文法格式如下: 資料類型 變數名稱1,變數名稱2,…變數名稱n; 例如:int x,y,z; 在該文法格式中,變數名之間使用“,”分隔,這裡的變數名稱可以有任意多個。 也可以在聲明多個變數時對變數進行賦值,文法格式如下: 資料類型 變數名稱1=值1,變數名稱2=值2,…變數名稱n=值n; 例如:int x = 10,y=20,z=40; 也可以在聲明變數時,有選擇的進行賦值,例如:int x,y=10,z; 以上文法格式中,如果同時聲明多個變數,則要求這些變數的類型必須相同,如果聲明的變數類型不同,則只需要分開聲明即可,例如: int n = 3; boolean b = true; char c; 在程式中,變數的值代表程式的狀態,在程式中可以通過變數名稱來引用變數中儲存的值,也可以為變數重新賦值。例如: int n = 5; n = 10; 在實際開發過程中,需要聲明什麼類型的變數,需要聲明多少個變數,需要為變數賦什麼數值,都根據程式邏輯決定,這裡列舉的只是表達的格式而已。
3.6.2 常量 常量代表程式運行過程中不能改變的值。 常量在程式運行過程中主要有2個作用:l 代表常數,便於程式的修改l 增強程式的可讀性常量的文法格式和變數類型,只需要在變數的文法格式前面添加關鍵字final即可。在Java編碼規範中,要求常量名必須大寫。則常量的文法格式如下: final 資料類型 常量名稱 = 值; final 資料類型常量名稱1 = 值1, 常量名稱2 = 值2,……常量名稱n = 值n;例如: final double PI = 3.14; final char MALE=’M’,FEMALE=’F’;在Java文法中,常量也可以首先聲明,然後再進行賦值,但是只能賦值一次,範例程式碼如下: final int UP; UP = 1;常量的兩種用途對應的範例程式碼分別如下:l 代表常數final double PI = 3.14;int r =5;double l = 2 * PI * r;double s = PI * r * r;在該範例程式碼中,常量PI代表數學上的∏值,也就是圓周率,這個是數學上的常數,後續的變數r代表半徑,l代表圓的周長,s代表圓的面積。則如果需要增加程式計算時的精度,則只需要修改PI的值3.14為3.1415926,重新編譯器,則後續的數值自動發生改變,這樣使代碼容易修改,便於維護。l 增強程式的可讀性int direction;final int UP = 1;final int DOWN = 2;final int LEFT = 3;final int RIGHT = 4;在該範例程式碼中,變數direction代表方向的值,後續的四個常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其數值分別是1、2、3和4,這樣在程式閱讀時,可以提高程式的可讀性。
3.6.3 語句塊 在程式中,使用一對大括弧{}包含的內容叫做語句塊,語句塊之間可以互相嵌套,嵌套的層次沒有限制,例如: { int a; } 語句塊的嵌套: { int b; { char c; } } 以上代碼只是示範文法,沒有什麼邏輯意義。在後續的文法介紹中,還會有語句塊的概念,就不再重複介紹了。
3.6.4 變數的作用範圍 每個變數都有特定的作用範圍,也叫做有效範圍或範圍,只能在該範圍內使用該變數,否則將提示法錯誤。通常情況下,在一個作用範圍內部,不能聲明名稱相同的變數。 變數的作用範圍指從變數聲明的位置開始,一直到變數聲明所在的語句塊結束的大括弧為止。例如以下代碼: { { int a = 10; a = 2; } char c; } 在該代碼中,變數a的作用範圍即從第三行到第五行,變數c的作用範圍即從第六行到第七行。
3.6.5 常量的作用範圍 常量的作用範圍和變數的作用範圍規則完全一致。
3.6.6 總結 對於變數和常量的內容就介紹這麼,下面是一個完整的代碼,可以在JDK或Eclipse中進行編譯和運行。代碼檔案名稱為VariableAndConst.java,範例程式碼如下: public class VariableAndConst{ public static void main(String[] args){ int n = 0; char c = ‘A’; System.out.println(n); n = 10; System.out.println(n); System.out.println(c); } }說明:在該代碼中,System.out.println的功能是輸出變數中儲存的值。