Java三大變量分別是類變量(靜態變量)、實例變量和局部變量(本地變量)。
局部變量就是本地變量,在方法、構造器或者塊中使用,在方法、構造器或者塊進入時被創建,一旦退出該變量就會被銷毀
局部變量沒有默認值,因此本地變量必須被聲明並且在第一次使用前要給它賦值
實例變量:在類中聲明,但是它在方法、構造器或者塊外,當堆中的對象被分配了一個空間時,每個實例變量的位置就被創建了。
當對象采用關鍵字“new”創建時實例變量就被創建了,當對象被銷毀時它也就被銷毀了。
實例變量的值必須被一個以上的方法、構造器或者塊,或者類中必須出現的對象的狀態的重要部分所引用
實例變量可以用訪問描述符
實例變量有默認值。數字的默認為0,boolean的默認為false,對象引用默認值為NULL
實例變量可以直接采用在類中叫名字方式訪問。然而在靜態方法和不同的類中應當使用完全限定名稱。ObjectReference.VariableName
實例變量是歸屬於類的實例的變量,又稱為成員變量,沒有經過static修飾。實例變量只能通過類名的實例+點操作符+變量來操作。
類變量:也叫靜態變量,在類中用static關鍵字聲明,但是它在方法、構造器或者塊之外。
每個類只有一個類變量,不管這個類有多少個對象。
除了作為常量被聲明之外,類變量很少被應用。常量是被作為public、private、final和static被聲明的變量。實例變量的初始值不會被改變
靜態變量存儲在靜態內存中,很少采用靜態變量而不是聲明結束或者用常量public或private之一。
靜態變量隨着程序的開始和結束而開始和結束。
可見性和實例變量類似。然而大多數靜態變量被聲明為public由於他們必須為類的使用者所用。
默認值和實例變量類似,除此之外,可以在特殊的靜態初始化區賦值
靜態變量可以用類的名稱訪問ClassName.VariableName
當靜態變量被作為public static final聲明時,變量(常量)名稱都要用大寫字母。如果靜態變量不是public和final,它的命名方法和實例變量和本地變量相同。
類變量不僅可以直接通過類名+點操作符+變量名來操作,也可以通過類的實例+點操作符+變量來操作,大多數情況下,采用前者操作方式,一來不能夠有效地使用該變量,二來能夠表示該變量就是類變量。
例子:
1 /** 2 *<p>Title:Java三大變量</p> 3 *<p>Description:演示Java三大變量的特性</p> 4 *<p>Copyright:copyright(c) 2012</p> 5 *<p>Filename:VariableType.java</p> 6 *@author 王路情 7 *@version 1.0 8 */ 9 public class VariableType 10 { 11 //定義類變量 12 public static String name = "王路情"; 13 //定義實例變量 14 public char sex = 'M'; 15 16 /** 17 *方法描述:輸出對中國祝福的內容 18 *輸入參數:String str 19 *返回類型:void 20 */ 21 public String print(String str) 22 { //定義局部變量 23 String str1 = "中國,"; 24 25 return str1 + str; 26 } 27 /** 28 *方法描述:主方法 29 *輸入參數:String[] args 30 *返回類型:void 31 */ 32 33 public static void main(String[] args) 34 { 35 System.out.println("類變量"); 36 System.out.println("名字:" + VariableType.name); 37 38 VariableType type = new VariableType(); 39 System.out.println("實例變量"); 40 System.out.println("性別:" + type.sex); 41 System.out.println("局部變量"); 42 System.out.println("祝福:" + type.print("我愛你!") ); } 43 }