首頁  >  文章  >  Java  >  JAVA類別與物件(實例變數與類別變數的差異)(實例方法與類別方法的差異 )說明

JAVA類別與物件(實例變數與類別變數的差異)(實例方法與類別方法的差異 )說明

高洛峰
高洛峰原創
2018-05-25 09:30:004923瀏覽

這篇文章介紹JAVA類別與物件(實例變數與類別變數的差異)(實例方法和類別方法的差異)說明

實例變數

  • 實例變數宣告在一個類別中,但在方法、建構方法和語句區塊之外;

  • #當一個物件被實例化之後,每個實例變數的值就跟著確定;

  • 實例變數在物件創建的時候創建,在物件被銷毀的時候銷毀;

  • 實例變數的值應該至少被一個方法、建構方法或語句區塊引用#,使得外部能夠透過這些方式取得實例變數資訊;

  • 實例變數對於類別中的方法、建構方法或語句區塊是可見的。一般情況下應該把實例變數設為私有。透過使用存取修飾符可以使實例變數對子類別可見

  • 實例變數具有預設值。數值型變數的預設值是0,布林型變數的預設值是false,引用型別變數的預設值是null。變數的值可以在宣告時指定,也可以在建構方法中指定;

  • 實例變數可以直接透過變數名稱存取。但在靜態方法以及其他類別中,就應該使用完全限定名:ObejectReference.VariableName。

類別變數(靜態變數)

  • 類別變數也稱為靜態變量,在類別中以static關鍵字聲明,但必須在方法建構方法和語句區塊之外。

  • 無論一個類別創建了多少個對象,類別只擁有類別變數的一份拷貝。

  • 靜態變數除了被宣告為常數外很少使用。常數是指宣告為public/private,final和static類型的變數。常量初始化後不可改變。

  • 靜態變數儲存在靜態儲存區。經常被聲明為常數,很少單獨使用static聲明變數。

  • 靜態變數在程式開始時創建,在程式結束時銷毀。

  • 與實例變數具有相似的可見性。但為了對類別的使用者可見,大多數靜態變數宣告為public型別。

  • 預設值和實例變數相似。數值型變數預設值是0,布林型預設值是false,引用型別預設值是null。變數的值可以在宣告的時候指定,也可以在建構方法中指定。此外,靜態變數也可以在靜態語句區塊中初始化。

  • 靜態變數可以透過:ClassName.VariableName的方式存取。

  • 類別變數被宣告為public static final型別時,類別變數名稱必須使用大寫字母。如果靜態變數不是public和final類型,其命名方式與實例變數以及局部變數的命名方式一致。

class TiXing{
    float up,height;
    static float down;
    
    TiXing(float x,float y,float z){
        up=x;
        height=y;
        down=z;
    }
}

public class ep3_9{
    public static void main(String args[]){
        TiXing one=new TiXing(1,2,3);
        System.out.println("one's down is:"+one.down);
        TiXing two=new TiXing(4,5,6);
        System.out.println("one's down is:"+one.down);
        System.out.println("two's down is:"+two.down);
    
        System.out.println("TiXing's down is:"+TiXing.down);
    }
}

这篇文章介绍JAVA类与对象(实例变量与类变量的区别)(实例方法和类方法的区别 )说明

實例方法和類別方法對實例變數和類別變數的存取

實例方法可以對目前物件的實例變數進行操作,也可以對類別變數進行操作。實例方法由實例物件呼叫。

  • 類別方法不能存取實例變量,只能存取類別變數。類別方法由類別名稱或實例物件呼叫。類別方法中不能出現this或super關鍵字

class TiXing{
     private float up,height;
     private static float down;
    
    TiXing(float x,float y,float z){
        up=x;
        height=y;
        down=z;
    }
    public void display(){
        System.out.println("up is:"+up+"height is:"+height+"down is:"+down);
    }
    public static void change(float number){
        down=number;
        //System.out.println("height:"+height);//出错
    }
}

public class ep3_9{
    public static void main(String args[]){
        TiXing one=new TiXing(1,2,3);
        one.display();
        TiXing two=new TiXing(4,5,6);
        one.display();
        two.display();
    
        //TiXing.display();//出错
        one.change(101);
        one.display();
        two.change(102);
        two.display();    
    }
}

这篇文章介绍JAVA类与对象(实例变量与类变量的区别)(实例方法和类方法的区别 )说明

以上是JAVA類別與物件(實例變數與類別變數的差異)(實例方法與類別方法的差異 )說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn