舉個栗子:java
public class HelloWorld{ public static void main(String[] args) { String name = "我愛lili"; String address = "www.baidu.com"; System.out.println(name); System.out.println(address); } }
①局部變量git
②成員變量github
③類變量(靜態變量)spa
①局部變量聲明在方法、構造方法或者語句塊中;
②局部變量在方法、構造方法、或者語句塊被執行的時候建立,當它們執行完成後,變量將會被銷燬;
③訪問修飾符不能用於局部變量;
④局部變量只在聲明它的方法、構造方法或者語句塊中可見;
⑤局部變量是在棧上分配的。
⑥局部變量沒有默認值,因此局部變量被聲明後,必須通過初始化,纔可使用。3d
舉個栗子:code
package test; /** * Created by manlili on 2016/9/22. */ public class PartialVar { public void lili () { //age定義後須要初始化,定義在lili()方法中,它的做用域就限制在這個方法中 int age = 25; System.out.println("年齡是"+age); } public static void main(String[] args) { PartialVar myAge = new PartialVar(); myAge.lili(); } }
輸出結果是:對象
①實例變量聲明在一個類中,但在方法、構造方法和語句塊以外;
②當一個對象被實例化以後,每一個實例變量的值就跟着肯定;
③實例變量在對象建立的時候建立,在對象被銷燬的時候銷燬;
④實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部可以經過這些方式獲取實例變量信息;
⑤實例變量能夠聲明在使用前或者使用後;
⑥訪問修飾符能夠修飾實例變量;
⑦實例變量對於類中的方法、構造方法或者語句塊是可見的。通常狀況下應該把實例變量設爲私有。經過使用訪問修飾符可使實例變量對子類可見;
⑧實例變量具備默認值。數值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值能夠在聲明時指定,也能夠在構造方法中指定;
⑨實例變量能夠直接經過變量名訪問。但在靜態方法以及其餘類中,就應該使用徹底限定名:ObejectReference.VariableName。blog
舉個栗子:作用域
package test; /** * Created by manlili on 2016/9/22. */ public class instantiateVar { public int age; //對該類以及其餘類均可見 private String name; //僅對該類可見 public instantiateVar (int myAge) { //該類的構造方法 age = myAge; } public void lili (String myName ) { name = myName; } public void ptintmeg () { System.out.println("姓名是"+name); System.out.println("年齡是"+age); } public static void main(String[] args) { instantiateVar test = new instantiateVar(25); test.lili("利利"); test.ptintmeg(); } }
輸出結果是:get
①類變量也稱爲靜態變量,在類中以static關鍵字聲明,但必須在方法構造方法和語句塊以外。
②不管一個類建立了多少個對象,類只擁有類變量的一份拷貝。
③靜態變量除了被聲明爲常量外不多使用。常量是指聲明爲public/private,final和static類型的變量。常量初始化後不可改變。
④靜態變量儲存在靜態存儲區。常常被聲明爲常量,不多單獨使用static聲明變量。
⑤靜態變量在程序開始時建立,在程序結束時銷燬。
⑥與實例變量具備類似的可見性。但爲了對類的使用者可見,大多數靜態變量聲明爲public類型。
⑦默認值和實例變量類似。數值型變量默認值是0,布爾型默認值是false,引用類型默認值是null。變量的值能夠在聲明的時候指定,也能夠在構造方法中指定。此外,靜態變量還能夠在靜態語句塊中初始化。
⑧靜態變量能夠經過:ClassName.VariableName的方式訪問。
⑨類變量被聲明爲public static final類型時,類變量名稱必須使用大寫字母。若是靜態變量不是public和final類型,其命名方式與實例變量以及局部變量的命名方式一致。
舉個栗子:
package test; /** * Created by manlili on 2016/9/22. */ public class staticVar { public static String name; //靜態變量帶static public static final int age = 25; public static void main(String[] args) { staticVar test = new staticVar(); name = "利利"; System.out.println("名字是"+name); System.out.println("年齡是"+age); } }
輸出結果是: