靜態域 靜態變數 靜態方法

2021-10-21 05:57:38 字數 1215 閱讀 4231

static關鍵字修飾的域

class

employee

這裡employee物件有乙個例項域id和乙個靜態域nextid,每乙個employee物件都有乙個例項域id,但是所有的物件共享乙個靜態域nextid。假設有1000個employee物件,則有1000個例項域id,但是,只有乙個靜態域nextid

即使沒有乙個employee物件,靜態域nextid也存在。它屬於類,不屬於物件。

static final修飾的變數為靜態常量,注意這裡的關鍵字,少乙個都不是靜態常量。

public

class

math

在程式中,可以使用math.pi的形式獲得這個常量

如果關鍵字static被省略,pi就變成了math類的乙個例項域。需要通過math類的物件來訪問pi,並且每乙個math物件都有它的乙份pi拷貝。

如果關鍵字final被省略,pi就變成了乙個靜態域。

靜態方法是一種不能向物件實施操作的方法。例如:math類的pow方法就是乙個靜態方法,在運算時,不使用任何math物件,換句話說,沒有隱式的引數this

因為靜態方法不能操作物件,所以不能在靜態方法中訪問例項域,但是靜態方法可以訪問自身類中的靜態域。可以使用物件呼叫靜態方法,但是這樣容易引起混淆,因為計算的結果與物件毫無關係,建議還是使用類名,而不是類物件呼叫靜態方法。

在下面兩種情況下使用靜態方法:

乙個方法不需要訪問物件的狀態,其所需的引數都是通過顯式的提供(例如:math.pow

乙個方法只需訪問類的靜態域(例如:employee.getnextid)

C 靜態方法,靜態變數

使用static修飾符修飾的方法是靜態方法,反之是非靜態方法,靜態方法和靜態變數在建立後始終存在於同一塊記憶體中,它不屬於某乙個類的具體例項,而是屬於類本身,而每建立乙個類的例項,系統都會為每乙個非靜態成員分配乙個記憶體空間,而靜態成員無論建立多少例項,類的靜態成員在記憶體中都 只占有同一塊記憶體區...

Java static靜態變數 靜態方法

1.static關鍵字作用 static關鍵字修飾類成員變數 成員方法 內部類可以使這些類成員的建立和使用,直接與類相關而與具體例項無關。2.靜態變數 類變數 只在系統載入類時分配空間及初始化,建立該類例項時不再分配空間,為所有例項提供共享類的靜態變數。可進行例項間的通訊或者統計跟蹤是該類例項的數目...

靜態變數與靜態方法

static 可實現所有的物件共享乙個成員變數。被 static 修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個物件所有,即被類的所有物件所共享。訪問static成員變數有兩種方式 直接用類名.成員變數名訪問 定義類的物件,使用物件.成員變數名訪問。public class name ...