final和static的區別

2021-08-18 12:53:09 字數 777 閱讀 3042

一.static的作用:(靜態方法只能訪問靜態變數,靜態變數一般使用類名訪問,靜態語句塊先於程式執行)

static的的作用從三個方面來談,分別是靜態變數、靜態方法、靜態類。

1.靜態變數:

宣告為static的靜態變數實質上就是全域性變數,當宣告乙個物件時,並不產生static變數的拷貝,而是該類所有例項變數共用同乙個static變數。也就是說這個靜態變數只載入一次,只分配一塊儲存空間。

2.靜態方法:

宣告為static的靜態方法有以下幾個特點:

(1)靜態方法只能呼叫靜態方法;

(2)靜態方法只能訪問靜態資料;

(3)靜態方法不能以任何方式引用this或super;

3.靜態類:

通常乙個普通類不允許宣告為靜態,只有乙個內部類才可以(main方法就是乙個典型),這時這個宣告的靜態類可以直接作為乙個普通類來使用,而不需要例項乙個外部類。

二.final的作用:(常量,只能訪問,不能修改,一般使用全大寫)

同樣,final的作用從變數、方法、類三個方面來理解、

final修飾的變數的值不能被修改,是乙個常量;

final修飾的方法不能被重寫;

final修飾的類不能被繼承;(太監類!)

三.final 和static 一塊用表示什麼?

static和final一塊修飾的成員變數和成員方法,簡單來說可以理解為全域性常量!

對於變數,一旦給定值,就不可以修改,並且通過類名可以訪問。

對於方法,表示不可覆蓋,並且可以通過類名直接訪問

以上內容引用自

Final和static的區別

首先 final 和static 是完全沒有關係的。final 作用 1.final 修飾屬性,表示屬性 只能賦值一次 1 基本型別 值不能被修改 2 引用型別 引用不可以被修改該。如 public final int rows 1 此時變數rows不管在什麼地方引用,都不能被再次賦值。但是,可以先...

static和final的區別

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

final和static的區別

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