教妹學Java:初識Java變量
我妹(親妹)今年上大學了,學的計算機編程,沒成想,她的一名老師竟然是我的讀者,我妹是又驚喜又恐慌,驚喜是她哥我的讀者群體還挺廣泛的嘛,恐慌的是萬一學不好豈不是很丟他哥的臉?
為了給妹妹全方位的支援,就有了《教妹學 Java》這個專欄,希望我妹能通過這個專欄更快地掌握 Java 這門編程語言。同時,也希望這個專欄能夠幫助到更多剛入門的初學者,那就爽歪歪了。
“二哥,聽說 Java 變量在以后的日子里經常用,能不能提前給我透露透露?”三妹咪了一口麥香可可奶茶后對我說。
“三妹啊,搬個凳子坐我旁邊,聽二哥來給你慢慢說啊。”
Java 變量就好像一個容器,可以保存程序在運行過程中的值,它在聲明的時候會定義對應的數據類型(Java 分為兩種數據類型:基本數據類型和引用數據類型)。變量按照作用域的范圍又可分為三種類型:局部變量,成員變量和靜態變量。
比如說,int data = 88;,其中 data 就是一個變量,它的值為 88,類型為整形(int)。
01、局部變量
在方法體內聲明的變量被稱為局部變量,該變量只能在該方法內使用,類中的其他方法并不知道該變量。來看下面這個示例:
- /**
- * @author 微信搜「沉默王二」,回復關鍵字 PDF
- */
- public class LocalVariable {
- public static void main(String[] args) {
- int a = 10;
- int b = 10;
- int c = a + b;
- System.out.println(c);
- }
- }
其中 a、b、c 就是局部變量,它們只能在當前這個 main 方法中使用。
聲明局部變量時的注意事項:
- 局部變量聲明在方法、構造方法或者語句塊中。
- 局部變量在方法、構造方法、或者語句塊被執行的時候創建,當它們執行完成后,將會被銷毀。
- 訪問修飾符不能用于局部變量。
- 局部變量只在聲明它的方法、構造方法或者語句塊中可見。
- 局部變量是在棧上分配的。
- 局部變量沒有默認值,所以局部變量被聲明后,必須經過初始化,才可以使用。
02、成員變量
在類內部但在方法體外聲明的變量稱為成員變量,或者實例變量。之所以稱為實例變量,是因為該變量只能通過類的實例(對象)來訪問。來看下面這個示例:
- /**
- * @author 微信搜「沉默王二」,回復關鍵字 PDF
- */
- public class InstanceVariable {
- int data = 88;
- public static void main(String[] args) {
- InstanceVariable iv = new InstanceVariable();
- System.out.println(iv.data); // 88
- }
- }
其中 iv 是一個變量,它是一個引用類型的變量。new 關鍵字可以創建一個類的實例(也稱為對象),通過“=”操作符賦值給 iv 這個變量,iv 就成了這個對象的引用,通過iv.data 就可以訪問成員變量了。
聲明成員變量時的注意事項:
- 成員變量聲明在一個類中,但在方法、構造方法和語句塊之外。
- 當一個對象被實例化之后,每個成員變量的值就跟著確定。
- 成員變量在對象創建的時候創建,在對象被銷毀的時候銷毀。
- 成員變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式獲取實例變量信息。
- 成員變量可以聲明在使用前或者使用后。
- 訪問修飾符可以修飾成員變量。
- 成員變量對于類中的方法、構造方法或者語句塊是可見的。一般情況下應該把成員變量設為私有。通過使用訪問修飾符可以使成員變量對子類可見;成員變量具有默認值。數值型變量的默認值是 0,布爾型變量的默認值是 false,引用類型變量的默認值是 null。變量的值可以在聲明時指定,也可以在構造方法中指定。
03、靜態變量
通過 static 關鍵字聲明的變量被稱為靜態變量(類變量),它可以直接被類訪問,來看下面這個示例:
- /**
- * @author 微信搜「沉默王二」,回復關鍵字 PDF
- */
- public class StaticVariable {
- static int data = 99;
- public static void main(String[] args) {
- System.out.println(StaticVariable.data); // 99
- }
- }
其中 data 就是靜態變量,通過類名.靜態變量就可以訪問了,不需要創建類的實例。
聲明靜態變量時的注意事項:
- 靜態變量在類中以 static 關鍵字聲明,但必須在方法構造方法和語句塊之外。
- 無論一個類創建了多少個對象,類只擁有靜態變量的一份拷貝。
- 靜態變量除了被聲明為常量外很少使用。
- 靜態變量儲存在靜態存儲區。
- 靜態變量在程序開始時創建,在程序結束時銷毀。
- 與成員變量具有相似的可見性。但為了對類的使用者可見,大多數靜態變量聲明為 public 類型。
- 靜態變量的默認值和實例變量相似。
- 靜態變量還可以在靜態語句塊中初始化。
04、常量
在 Java 中,有些數據的值是不會發生改變的,這些數據被叫做常量——使用 final 關鍵字修飾的成員變量。常量的值一旦給定就無法改變!
常量在程序運行過程中主要有 2 個作用:
- 代表常數,便于修改(例如:圓周率的值,final double PI = 3.14)
- 增強程序的可讀性(例如:常量 UP、DOWN 用來代表上和下,final int UP = 0)
Java 要求常量名必須大寫。來看下面這個示例:
- /**
- * @author 微信搜「沉默王二」,回復關鍵字 PDF
- */
- public class FinalVariable {
- final String CHEN = "沉";
- static final String MO = "默";
- public static void main(String[] args) {
- FinalVariable fv = new FinalVariable();
- System.out.println(fv.CHEN);
- System.out.println(MO);
- }
- }
“好了,三妹,關于 Java 變量就先說這么多吧,你是不是已經清楚了?”轉動了一下僵硬的脖子后,我對三妹說。
“是啊,二哥,我想以后還會再見到它們吧?”
“那見的次數可就多了,就好像你每天眨眼的次數一樣多。”
本文轉載自微信公眾號「沉默王二」,可以通過以下二維碼關注。轉載本文請聯系沉默王二公眾號。