在程序中存在大量的數據來代表程序的狀態,其中有些數據在程序的運行過程中值會發生改變,有些數據在程序運行過程中值不能發生改變,這些數據在程序中分別被叫做變量和常量。
在實際的程序中,可以根據數據在程序運行中是否發生改變,來選擇應該是使用變量代表還是常量代表。
1 變量
變量代表程序的狀態。程序通過改變變量的值來改變整個程序的狀態,或者說得更大一些,也就是實現程序的功能邏輯。
為了方便的引用變量的值,在程序中需要為變量設定一個名稱,這就是變量名。例如在2D游戲程序中,需要代表人物的位置,則需要2個變量,一個是x坐標,一個是y坐標,在程序運行過程中,這兩個變量的值會發生改變。
由於Java語言是一種強類型的語言,所以變量在使用以前必須首先聲明,在程序中聲明變量的語法格式如下:
數據類型 變量名稱;
例如:int x;
在該語法格式中,數據類型可以是Java語言中任意的類型,包括前面介紹到的基本數據類型以及後續將要介紹的復合數據類型。變量名稱是該變量的標識符,需要符合標識符的命名規則,在實際使用中,該名稱一般和變量的用途對應,這樣便於程序的閱讀。數據類型和變量名稱之間使用空格進行間隔,空格的個數不限,但是至少需要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;
在實際開發過程中,需要聲明什麼類型的變量,需要聲明多少個變量,需要為變量賦什麼數值,都根據程序邏輯決定,這裡列舉的只是表達的格式而已。
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 語句塊
在程序中,使用一對大括號{}包含的內容叫做語句塊,語句塊之間可以互相嵌套,嵌套的層次沒有限制,例如:
{
int a;
}
語句塊的嵌套:
{
int b;
{
char c;
}
}
以上代碼只是演示語法,沒有什麼邏輯意義。在後續的語法介紹中,還會有語句塊的概念,就不再重復介紹了。
4 變量的作用范圍
每個變量都有特定的作用范圍,也叫做有效范圍或作用域,只能在該范圍內使用該變量,否則將提示語法錯誤。通常情況下,在一個作用范圍內部,不能聲明名稱相同的變量。
變量的作用范圍指從變量聲明的位置開始,一直到變量聲明所在的語句塊結束的大括號為止。例如以下代碼:
{
{
int a = 10;
a = 2;
}
char c;
}
在該代碼中,變量a的作用范圍即從第三行到第五行,變量c的作用范圍即從第六行到第七行。
5 常量的作用范圍
常量的作用范圍和變量的作用范圍規則完全一致。
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的功能是輸出變量中存儲的值。