在所有定義的方法上以及屬性上實際上都可以使用static關鍵字進行定義。
1.static屬性
在講解具體的static操作之前首先來看這樣的乙個程式
範例:定義乙個表示人的類,同時設定他所在的國家
class person
public string getinfo()
}public class testdemo
}//姓名:張三,年齡:10,國家:大**
姓名:李四,年齡:20,國家:中國
姓名:王五,年齡:30,國家:中國
那麼現在就可以發現傳統屬性所具備的特徵就是儲存在堆記憶體之中,並且每乙個物件獨享此屬性。
可是同樣的概念,現在明顯不適合與當前的環境,所以最好的做法是將country屬性變為乙個共享屬性,那麼只要一次修改就可以影響到所有的物件。那麼如果要描述這樣的共享屬性,則只需要在屬性前追加乙個static關鍵字即可
class person
public string getinfo()
}//輸出語句略
結果:姓名:張三,年齡:10,國家:大**
姓名:李四,年齡:20,國家:大**
姓名:王五,年齡:30,國家:大**
★當程式中使用了static關鍵字進行定義之後,那麼此屬性將不儲存在堆記憶體之中,會儲存在乙個全局資料區的記憶體空間之中。並且所有的物件都可以進行該資料區的訪問。
但是現在使用的是共享屬性,這個時候的**就會出現乙個問題,共享屬效能通過乙個物件修改嗎?
對於static實際上也會將其稱為類屬性,而所有的類屬性都可以利用類名稱直接呼叫。
結果是一樣的。
結論:訪問static屬性都使用類名稱
所有的非static的屬性必須產生例項化物件之後才可以使用,而所有static的屬性不受例項化物件的限制,也就是說是否有物件與static屬性操作無關。
例如:
public static void main(string args)
}
選擇:關於static屬性與非static屬性定義的選擇(只有共享或者不想產生物件時才用static)|-在定義類99%的情況下是不會考慮static屬性的;
|-如果需要描述共享屬性的概念,或者不希望受到例項化物件控制的時候使用static屬性
static修飾屬性
今天寫程式遇到一點小問題,最後問題出在成員變數修飾符上,static修飾符 public class students public int getid public void setid int id public string getname public void setname string...
static定義方法
static也可以進行方法的定義,static方法的主要特點在於可以直接由類名稱在沒有例項化物件的情況下進行呼叫。定義乙個static方法 class person public string getinfo public static void stecountry string c public...
Value注入static屬性
1.給引數注入,執行set方法 public class sendmessagecenter public void setmessage string message value public void setpage string page 在set方法上面新增註解的,一定要在class上新增 ...