JAVA類與對象---實例變量與類變量的區別,實例方法和類方法的區別

實例變量

  • 實例變量聲明在一個類中,但在方法、構造方法和語句塊以外;
  • 當一個對象被實例化以後,每一個實例變量的值就跟着肯定;
  • 實例變量在對象建立的時候建立,在對象被銷燬的時候銷燬;
  • 實例變量的值應該至少被一個方法、構造方法或者語句塊引用,使得外部可以經過這些方式獲取實例變量信息;
  • 實例變量對於類中的方法、構造方法或者語句塊是可見的。通常狀況下應該把實例變量設爲私有。經過使用訪問修飾符可使實例變量對子類可見
  • 實例變量具備默認值。數值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值能夠在聲明時指定,也能夠在構造方法中指定;
  • 實例變量能夠直接經過變量名訪問。但在靜態方法以及其餘類中,就應該使用徹底限定名:ObejectReference.VariableName。

類變量(靜態變量)

  • 類變量也稱爲靜態變量,在類中以static關鍵字聲明,但必須在方法構造方法和語句塊以外。
  • 不管一個類建立了多少個對象,類只擁有類變量的一份拷貝。
  • 靜態變量除了被聲明爲常量外不多使用。常量是指聲明爲public/private,final和static類型的變量。常量初始化後不可改變。
  • 靜態變量儲存在靜態存儲區。常常被聲明爲常量,不多單獨使用static聲明變量。
  • 靜態變量在程序開始時建立,在程序結束時銷燬。
  • 與實例變量具備類似的可見性。但爲了對類的使用者可見,大多數靜態變量聲明爲public類型。
  • 默認值和實例變量類似。數值型變量默認值是0,布爾型默認值是false,引用類型默認值是null。變量的值能夠在聲明的時候指定,也能夠在構造方法中指定。此外,靜態變量還能夠在靜態語句塊中初始化。
  • 靜態變量能夠經過:ClassName.VariableName的方式訪問。
  • 類變量被聲明爲public static final類型時,類變量名稱必須使用大寫字母。若是靜態變量不是public和final類型,其命名方式與實例變量以及局部變量的命名方式一致。
  •  1 class TiXing{
     2     float up,height;
     3     static float down;
     4     
     5     TiXing(float x,float y,float z){
     6         up=x;
     7         height=y;
     8         down=z;
     9     }
    10 }
    11 
    12 public class ep3_9{
    13     public static void main(String args[]){
    14         TiXing one=new TiXing(1,2,3);
    15         System.out.println("one's down is:"+one.down);
    16         TiXing two=new TiXing(4,5,6);
    17         System.out.println("one's down is:"+one.down);
    18         System.out.println("two's down is:"+two.down);
    19     
    20         System.out.println("TiXing's down is:"+TiXing.down);
    21     }
    22 }
    View Code

實例方法和類方法對實例變量和類變量的訪問html

實例方法能夠對當前對象的實例變量進行操做,也能夠對類變量進行操做。實例方法由實例對象調用。ide

  • 類方法不能訪問實例變量,只能訪問類變量。類方法由類名或者實例對象調用。類方法中不能出現this或者super關鍵字
 1 class TiXing{
 2      private float up,height;
 3      private static float down;
 4     
 5     TiXing(float x,float y,float z){
 6         up=x;
 7         height=y;
 8         down=z;
 9     }
10     public void display(){
11         System.out.println("up is:"+up+"height is:"+height+"down is:"+down);
12     }
13     public static void change(float number){
14         down=number;
15         //System.out.println("height:"+height);//出錯
16     }
17 }
18 
19 public class ep3_9{
20     public static void main(String args[]){
21         TiXing one=new TiXing(1,2,3);
22         one.display();
23         TiXing two=new TiXing(4,5,6);
24         one.display();
25         two.display();
26     
27         //TiXing.display();//出錯
28         one.change(101);
29         one.display();
30         two.change(102);
31         two.display();    
32     }
33 }
View Code

注:此文轉自http://www.cnblogs.com/scf141592/p/5726347.html,轉載請註明做者出處。this

相關文章
相關標籤/搜索