天天看點

【Java學習筆記之三】java中的變量和常量

變量和常量

    在程式中存在大量的資料來代表程式的狀态,其中有些資料在程式的運作過程中值會發生改變,有些資料在程式運作過程中值不能發生改變,這些資料在程式中分别被叫做變量和常量。

    在實際的程式中,可以根據資料在程式運作中是否發生改變,來選擇應該是使用變量代表還是常量代表。

變量

    變量代表程式的狀态。程式通過改變變量的值來改變整個程式的狀态,或者說得更大一些,也就是實作程式的功能邏輯。

    為了友善的引用變量的值,在程式中需要為變量設定一個名稱,這就是變量名。

    資料類型 變量名稱;

    例如:int x;

在該文法格式中,資料類型可以是Java語言中任意的類型,包括基本資料類型和複合資料類型。變量名稱是該變量的辨別符,需要符合辨別符的命名規則,在實際使用中,該名稱一般和變量的用途對應,這樣便于程式的閱讀。資料類型和變量名稱之間使用空格進行間隔,空格的個數不限,但是至少需要1個。語句使用“;”作為結束。

    也可以在聲明變量的同時,設定該變量的值,文法格式如下:

    資料類型 變量名稱 = 值;

    例如:int x = 10;

    在該文法格式中,前面的文法和上面介紹的内容一緻,後續的“=”代表指派,其中的“值”代表具體的資料,注意差別“==”代表為判斷是否相等。在該文法格式中,要求值的類型需要和聲明變量的資料類型一緻。

       在程式中,變量的值代表程式的狀态,在程式中可以通過變量名稱來引用變量中存儲的值,也可以為變量重新指派。例如:

    int n = 5;

    n = 10;

    在實際開發過程中,需要聲明什麼類型的變量,需要聲明多少個變量,需要為變量賦什麼數值,都根據程式邏輯決定,這裡列舉的隻是表達的格式而已。

    常量

    常量代表程式運作過程中不能改變的值。

    常量在程式運作過程中主要有2個作用:

         1. 代表常數,便于程式的修改(例如:圓周率的值)

         2. 增強程式的可讀性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其數值分别是1、2、3和4)

    常量的文法格式和變量類型:隻需要在變量的文法格式前面添加關鍵字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;

變量類型

    局部變量

局部變量聲明在方法、構造方法或者與語句塊中;在方法、構造方法或者語句塊中被執行的時候建立,當它們執行完成後,

變量将被銷毀;通路修飾符不能用于局部變量;隻在聲明它的方法、構造函數或者語句塊中可見;局部變量是在棧上配置設定的;

局部變量沒有預設值,是以被聲明後,必須經過初始化,才可以使用。

    成員變量(執行個體變量)

成員變量聲明在一個類中,但在方法、構造方法和語句塊之外;當一個對象被執行個體化之後,每個執行個體變量的值就跟着确定;

成員變量在對象建立的時候建立,在對象銷毀之時銷毀;執行個體變量的值應該至少被一個方法、構造方法或者語句塊引用,

使得外部能夠通過這些方式擷取執行個體變量資訊;成員變量可以聲明在使用前或使用後;通路修飾符可以修飾成員變量;

成員變量對于類中的方法、構造方法或者語句塊是可見的,一般情況下應該把它們設為私有,

通過使用通路修飾符可以使執行個體變量對子類可見;成員變量具有預設值,數值型變量預設值是0,布爾型變量預設值是false,

引用類型變量的預設值是null。變量的值可以在聲明時指定,也可以在構造方法中指定;執行個體變量可以直接通過變量名方法。

    類變量(靜态變量)

類變量也稱為靜态變量,在類中以static關鍵字聲明,但必須在方法、構造方法和語句塊之外。無論一個類建立了多少個對象,

類隻擁有類變量的一份拷貝,類變量是類的資源。靜态變量除了被聲明為常量之外很少使用,常量使之聲明

為public/private,final和static類型的變量,常量初始化後不可改變。靜态變量存儲在靜态存儲區,經常被聲明為常量,

很少單獨使用static聲明變量。靜态變量在程式開始時建立,在程式結束時銷毀。與執行個體變量具有相似的可見性,但為了對類

的使用者可見,大多數靜态變量聲明為public類型。預設值和執行個體變量相似,可以在聲明時指派也可以在構造方法中指定,

此外,靜态變量還可以在靜态語句塊中初始化。靜态變量可以通過:ClassName.VariableName的方式通路。

類變量被聲明為public static final類型時,類變量名稱必須使用大寫字母,如果靜态變量不是public和final類型,

其命名方式與執行個體變量以及局部變量的命名方式一緻。