Final和static的區別

2021-07-22 08:24:20 字數 1129 閱讀 3479

首先 final 和static 是完全沒有關係的。

final 作用:

1.   final 修飾屬性,表示屬性【只能賦值一次】,(1)基本型別:值不能被修改;(2)引用型別:引用不可以被修改該。

如:public final int rows = 1;

此時變數rows不管在什麼地方引用,都不能被再次賦值。

但是,可以先只定義變數,不賦值。

private final int id //只定義id。

private static int taskcount =0;

private final int id = --taskcount; //給id賦值。此時id在類中值是 -1 。並且不能再改變。

public class father}

2 . final 修飾方法,表示方法不可以重寫,但是可以被子類訪問(如果方法不是 private 型別話)。

public class son extends father*/

private string str="";

private  int id=1;

public son()

public son(string str,int id)

/** 注意,此時的子類是可以過載父類的方法的

*/public  final string fun(string str)

//子類呼叫父類方法

public static void main(string args)

3.   final 修飾類,表示類不可以被繼承。

二. static

1..static 含義:靜態的,被 static 修飾的方法和屬性只屬於類不屬於類的任何物件。所以通過static 修飾的變數和方法可以直接通過類名呼叫。因此通過static修飾的變數和方法共享一片類存空間。

2..static 可以修飾【內部類】、方法和成員變數。

3..static【不可以修飾外部類】、【不可以修飾區域性變數】(因為 static 本身就是定義為類級別的,所以區域性級別的變數是不可以用 static 修飾的)。

public class staticbase

public static void main(string args)

}

static和final的區別

修飾變數 靜態變數隨著類載入時被完成初始化,記憶體只有乙個,且jvm也只會為他分配一次記憶體,所有類共享靜態變數。修飾方法 在類載入的時候就存在,不依賴任何例項。static方法必須實現,不能用abstract修飾。即abstract修飾的方法不可謂static。修飾 塊 在類載入完成之後就會執行靜...

final和static的區別

final可以修飾類 成員方法和變數 成員變數和區域性變數 1.final修飾的類不可以被繼承 2.final修飾的方法不可以被重寫 3.final修飾的變數表示常量,只能被賦值一次 注意 final修飾成員變數時,預設沒有初始值。賦值方法 選擇其中一種 a.宣告時賦值 b.構造方法中賦值 c.塊中...

final和static的區別

一.static的作用 靜態方法只能訪問靜態變數,靜態變數一般使用類名訪問,靜態語句塊先於程式執行 static的的作用從三個方面來談,分別是靜態變數 靜態方法 靜態類。1.靜態變數 宣告為static的靜態變數實質上就是全域性變數,當宣告乙個物件時,並不產生static變數的拷貝,而是該類所有例項...