被static修飾的成員變數就是靜態變數。靜態變數被該類下所有的物件所共享。
物件空間中就沒有這個成員變數,存在方法區的靜態區。
獲取值:
物件名.屬性名【實際開發堅決不用】
類名.屬性名
修改值:
物件名.屬性名 = 新值【實際開發堅決不用】
類名.屬性名 = 新值
**示例:
person類:
public
class
person
測試類:
public
class
testperson
}
1、記憶體空間不一致
靜態變數:存在於方法區的靜態區
非靜態變數:
全域性變數:堆空間的物件空間中
區域性變數:棧空間
2、所屬不同:
靜態變數:屬於類
非靜態變數:
全域性變數:屬於物件
區域性變數:屬於方法
3、生命週期不同:
靜態變數:隨著類的載入而載入 隨著類的消失而消失
非靜態變數:
全域性變數:隨著物件的建立而建立 隨著物件的消失而消失
區域性變數:隨著方法的執行而建立 隨著方法的停止而消失
4、呼叫方式不同:
靜態變數:類名呼叫
非靜態變數:
全域性變數:物件呼叫
區域性變數:直接使用
被static修飾的方法就是靜態方法 比如:main方法
屬於類,被物件共享但是呼叫不使用物件呼叫,可以使用類名直接呼叫
1、只能使用靜態資源【靜態變數和靜態方法】,不能訪問外界非靜態成員(因為在靜態訪問非靜態的時候,非靜態還不存在)
靜態方法中沒有物件this,所以不能訪問非靜態成員2、因為靜態先於物件的存在而存在,所以靜態方法中不能出現this和super關鍵字。
3、可以定義非靜態的變數,不能定義靜態變數
4、非靜態方法可以訪問靜態成員,也可以訪問非靜態成員
只需要訪問靜態成員時;
不需要訪問物件狀態,所需引數都由引數列表顯示提供
**示例:
person類:
public
class
person
public
static
void
work()
} 測試類:
public
class
testperson
}
靜態變數與靜態方法
static 可實現所有的物件共享乙個成員變數。被 static 修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個物件所有,即被類的所有物件所共享。訪問static成員變數有兩種方式 直接用類名.成員變數名訪問 定義類的物件,使用物件.成員變數名訪問。public class name ...
靜態變數與靜態方法
使用static修飾的方法稱作靜態方法,又稱類方法。同樣的,使用static修飾的變數又稱作類變數或者靜態變數。靜態方法有如下特點 1 應該通過類名直接呼叫,不用通過引用呼叫。2 方法內部 只能夠使用本方法內的區域性變數 方法的引數 靜態變數和靜態方法。不能使用非靜態的變數和非靜態的方法。同樣也不能...
靜態域 靜態變數 靜態方法
static關鍵字修飾的域 class employee 這裡employee物件有乙個例項域id和乙個靜態域nextid,每乙個employee物件都有乙個例項域id,但是所有的物件共享乙個靜態域nextid。假設有1000個employee物件,則有1000個例項域id,但是,只有乙個靜態域ne...