JAVA 靜態變數與實體變數

2021-08-03 22:22:36 字數 1071 閱讀 5551

1.靜態成員變數是屬於整個類的全域性變數,它不單屬於某乙個物件;普通成員變數是屬於類中的物件,它不能被所有物件共享。

2.靜態成員變數必須在全域性進行定義,而由於普通成員變數在建立乙個物件的時候可以對它進行初始化,因此就不需要單獨對它進行定義,只要宣告即可。

3.靜態成員變數在沒有物件之前就存在。

程式示例

public class helloworld {

static string classname = "靜態";//宣告個靜態變數

string xie="實體變數";//宣告個成員變數

public static void main(string args) {

helloworld n=new helloworld();//建立兩個物件以便於比較

helloworld v=new helloworld();

//從下面這段**可以看出只要乙個物件把靜態變數的值變了,那所有的物件的都跟著變,這就是所謂的全員共享

system.out.println(n.classname); //輸出結果:靜態

system.out.println(v.classname); //輸出結果:靜態

n.classname="靜態2";

system.out.println(n.classname);//輸出結果:靜態2

system.out.println(v.classname);//輸出結果:靜態2

//從下面這段**可以看出物件n只能改變自己關於成員變數的值,改變不了別的物件關於成員變數的值

system.out.println(n.xie);//輸出結果:實體變數

system.out.println(v.xie;//輸出結果:實體變數

n.xie="實體變數2";

system.out.println(n.xie);//輸出結果:實體變數2

system.out.println(v.xie);//輸出結果:實體變數

//原因是因為不同物件關於實體變數變數的值在記憶體中儲存的位置不同

//但靜態的大家都是在同乙個地方儲存,所以乙個變,其他的都跟著變了

java 靜態變數 與 非靜態變數

一 建立乙個類的物件時 new 類名 時,該類的.class檔案會被載入到一段記憶體中。1.先將該類的.class檔案會被載入到一段記憶體,初始化static屬性和方法,為他們分配空間,以後一直在記憶體中,即使這個物件被銷毀。這就是不建議使用static屬性和方法的原因之一 2.copy其中非sta...

Java靜態變數和非靜態變數

記憶體分配 靜態方法和靜態變數建立之後一直使用同一塊記憶體,是連續的。非靜態方法會存在於記憶體的多個地方,是離散的。生命週期 靜態變數的生存週期是應用的生存週期。非靜態變數的存在週期取決於例項化的類的存在週期。呼叫方式 靜態變數只能是 class.靜態變數 來呼叫,類的例項不能呼叫。非靜態變數在變數...

JAVA靜態變數

靜態變數 什麼時候定義靜態變數呢?當該成員變數的值,每乙個物件都一致時,就對該成員變數進行靜態修飾。靜態變數和成員變數的區別 1,所屬範圍不同。靜態變數所屬於類,成員變數所屬物件。靜態變數也稱為 類變數 成員變數也稱為例項變數。2,呼叫不同。靜態變數可以被物件和類呼叫 一般都用類名呼叫 成員變數只能...