參考鏈接: Java中的實例變量隱藏
1、變量的定義:定義變量就是要告訴編譯器這個變量的數據類型,這樣編譯器才知道需要分配多少空間給它,以及它能存放什么樣的數據。在程序運行過程中空間的值是變化的,這個內存空間就成為變量。為了便于操作,給這個變量取個名字,稱為變量名。?
2、變量的命名規則:?
①變量名必須是一個有效的標識符?
②變量名不可以使用Java中的關鍵字?
③變量名不能重復?
④應選擇有意義的單詞作為變量名。?
說明:在Java語言中語序使用漢字或其他語言文字作為變量名,如:int 年齡 = 21;在程序運行時不會出現錯誤,但建議盡量不要使用這些語言文字作為變量名。?
3、①常量的定義:在程序運行過程一直不會改變的量稱為常量,通常也成為"final變量"。常量在整個程序中只能被賦值一次。在為所有的對象共享值時,常量是非常有用的。聲明常量的標準語法為:final 數據類型 變量名[=值]?
? ②常量名通常使用大寫字母,但這不是必須。很多Java程序員使用大寫字母表示常量,是為了清楚的表明正在使用常量。?
③當定義的final變量為成員變量時,必須在定義時就設定它的初始值,否則將會提示編譯錯誤。?
4、變量的有效范圍:變量的有效范圍是程序代碼能夠訪問該變量的區域,若超出該區域,則在編譯時會出現錯誤。在程序中,一般會根據變量的有效范圍將變量劃分為成員變量和局部變量。?
5、成員變量(全局變量):在類體中所定義的變量為成員變量,成員變量在整個類中都有效。類的成員變量又分為兩種:靜態變量和實例變量?
?
6、成員變量和局部變量的有效范圍:?
①成員變量(在類體中所定義的變量為成員變量):在整個類中都有效?
②局部變量(再類的方法內聲明變量,包括方法的參數都屬于局部變量):只在當前定義的方法內有效,不能用于類的其他方法中。局部變量的生命周期取決于方法,當方法被調用時,Java虛擬機為方法中的局部變量分配內存空間,當該方法調用結束后,則會釋放方法中局部變量占用的內存空間,局部變量也將被銷毀。?
③局部變量可與成員變量的名字相同,此時成員變量將被隱藏,即這個成員變量在此方法中暫時失效。?
?
運行結果為:?
?
??
7、最后附上代碼:?
package com.abc;
?
public class Variable {
? ? String name;// 成員變量(Member variables),也稱為全局變量,對象的屬性;成員變量也分為靜態變量和實例變量
? ? static int age = 20;// 靜態變量(Static variable)
? ? int weight = 45;// 實例變量(Instance variable)
? ? final double PI = 3.14;// 聲明int類型常量,當定義的final變量為成員變量時,必須在定義時就設定它的初始值,否則將會提示編譯錯誤。
?
? ? static final double HEIGHT = 180;// 常量/靜態變量
?
? ? public static void main(String[] args) {
? ? ? ? final String tag;// 常量(constant),當定義的final變量為成員變量時,可以賦初始值,也可以不賦值
? ? ? ? String sex = "女";// 局部變量(Local variable)
? ? ? ? tag = "A";
? ? ? ? int age = 21;
//? ? ? ? tag = "B";// 錯誤的代碼。常量在整個程序中只能被賦值一次。
? ? ? ? System.out.println(tag + "\t" + sex);
? ? ? ? System.out.println("年齡為:" + age);
? ? }
?
}