1.何時使用靜態方法:
如果某些操作不依賴具體例項,那它就是靜態的,反之如果某些操作是依賴具體例項的(例如訪問乙個特定會員的名稱),那它就應該是例項化的。
2.靜態方法和例項方法的區別主要體現在兩個方面:
1)在外部呼叫靜態方法時,可以使用"類名.方法名"的方式,也可以使用"物件名.方法名"的方式。而例項方法只有後面這種方式。也就是說,呼叫靜態方法可以無需建立物件。
2)靜態方法在訪問本類的成員時,只允許訪問靜態成員(即靜態成員變數和靜態方法),而不允許訪問例項成員變數和例項方法;例項方法則無此限制。
3.無論是單例還是靜態函式,都有乙個特點,就是他們在記憶體中只有乙個例項,這意味著:
1)使用過程中不需要再new例項化物件,開銷很小
2)這些類一般都是無狀態的,函式誰調都一樣
因此,綜合上上述,他們適合用於工具類。
區別:1。構建例項化時間來說,靜態函式在類載入就可以用,換句話說,是系統保證其實例的唯一性的。而單例,其實還是普通類,是程式來保證其記憶體的唯一性的,所以類的例項,要手動載入!注意,單例模式的建立過程是有點考功底的,特別是所謂的惰性初始化。用不好會弄巧成拙。
2。單例和靜態函式另外乙個區別在於oo方面。靜態函式由於其類載入就確定函式的特點,決定了他是真正的靜態,就把他當成簡單的工具類就ok了。而單例如上說的,由於其可以滯後例項化,所以他仍然可以用抽象,用子類。也就是說,仍然可以抽象乙個工具單例,直到執行階段才決定到底使用那個具體的子類單例!
static 靜態方法
乙個不需要任何主叫物件的方法就是靜態方法。靜態方法需要關鍵字static來宣告於定義,他不需要主叫物件,因為它不屬於物件而是屬於類。靜態方法可以被子類繼承,也可以被重寫,但是不能實現多型性。多型性的實現重點在於動態繫結,每一次在呼叫相應方法的時候都是去動態查詢匹配,靜態方法是在類初次載入的時候就已經...
static靜態方法
static也可以修飾方法,使之成為靜態方法,我們通常用的入口函式,也就是main方法就是乙個靜態方法。注意事項 靜態方法可以直接呼叫靜態變數,不能呼叫非靜態成員變數。public class helloworld 2.可以通過建立類的物件來呼叫非靜態成員 public class hellowor...
static 靜態方法
靜態變數 原理就是共享資料段,只要沒有進行 寫入 操作就不會產生問題,但是資料通常都是用於讀和寫所以靜態變數要注意使用 什麼時候用靜態的方法 一般靜態物件適合物件無狀態的情況 或唯讀的狀態 而又頻繁使用的資料,比如連線字串,配置資訊等,而例項化適合物件有狀態的情況 變化的狀態 如 使用者類物件狀態經...