欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 中的static關鍵字和final關鍵字的不同之處

 更新時間:2013年03月27日 09:01:52   作者:  
java 中的static關鍵字和final關鍵字的不同之處,需要的朋友可以參考一下

static

1.在類中,用static修飾的屬性,稱為靜態(tài)屬性。為這個類的所有對象所共有,存放在靜態(tài)存儲區(qū),所有該類的對象都可以訪問且訪問的都是同一變量??梢杂米饔嫈?shù)器,來統(tǒng)計總共創(chuàng)建了多少個各類的對象。

2.在類中,用static 修飾的方法為靜態(tài)方法,在靜態(tài)方法中不可以訪問非靜態(tài)的屬性和方法,但在非靜態(tài)方法中可以訪問靜態(tài)方法和屬性;且static方法多態(tài)失效,不能使用this。

3.由于靜態(tài)屬性和方法是屬于該類的所有對象的,所以可以用類名.靜態(tài)屬性/方法名---來訪問。

4.static 還可以修飾代碼塊,在類加載的時候被執(zhí)行1次,僅且一次。

final

(1)final標記的類不能被繼承

復制代碼 代碼如下:

final class T{}

class TT extends T{}//出錯,final類不能被繼承


(2)final標記的方法不能被子類重寫

復制代碼 代碼如下:

class T{

    public final void function(){}
}

class TT extends T{

    public void function(){}//出錯,final方法不能被子類重寫
}


(3)final標記的局部變量為常量        
復制代碼 代碼如下:

final int x=10;
x=3//出錯,final標記的局部變量為常量,不能被賦值

 (4)final標記的成員變量必須在聲明的同時賦值,或在該類的構造方法中顯示賦值(實例變量沒有默認值),然后才能使用。

如:

復制代碼 代碼如下:

class Test{
final int x=10;//聲明并賦值

}

//或者

class Test{
    final int x;
    Test(){
     x=10;

}
 


(5)方法中定義的內(nèi)置類只能訪問該方法內(nèi)的final類型的局部變量,用final定義的局部變量相當于一個常量,它的生命周期長于方法運行的生命周期。

(6)將一個形參定義成final也是可以的,這就限制了在方法中修改形參的值范圍。

java中有許多的類為final類型:String ,Math等等。

相關文章

最新評論