對於classa }static
相信大家對此並不會感覺到陌生吧,因為任何的程式都應該具有乙個
main
大家還記得吧。
public static void main(string args)
這樣就定義了乙個靜態的
main
方法,但是在用的同時很少真正去研究它為什麼要定義成
static
或者說這樣的好處是什麼,今天特定去翻看了一些書籍,也當做個總結希望對大家有幫助。
傳統的物件定義:
上面我們定義了乙個類名稱為a,那麼普通的物件要使用必須通過下面的方式,只有通過
new來產生物件,否則就不存在任何實質的物件,所以只有在產生物件才會被分配出來,函式才可以供其他呼叫
a a1=new a();
a a2=new a2();
那麼上面的這種建立其實就是跟物件建立乙個關係,那麼儲存的狀態應該是
a1,a2
分別建立二個物件空間,那麼每個物件都有
write
這個方法,那麼我們在呼叫的時候必須信賴於物件來進行相應的訪問。
而static
的函式方法是在建立之前就存在的,它脫離了物件本身,那麼不管你建立多少個物件那麼它的
static
方法或屬性都只會有乙個。
classb}
上面定義了乙個
b的類,在b中有乙個公共的
write
方法,那麼不管你建立多麼個類而
write
方法只會有乙個,那麼如果要使用不需要再建立b這個類,只需要在其他的類中
b.write
()來呼叫,這跟普通的乙個區別因為他不用物件的建立就存在在記憶體中而且呼叫的方法是直接用類名而不是物件名。
上面我特別留了乙個錯誤,不信你自己執行一下,對於任何的
static
方法而言其實不能訪問本類的普通物件,因為他們在建立的時候不是在同乙個命名空間,所以你要使用
i的話必須在
write
中建立b
再呼叫這樣就訪問。
大家如果有什麼更好的理解可以發出來,不管怎樣分享的目的主要是以學習為最終目的。
樓主剛來北京無業狀態,如果哪位前輩就職的公司需要相應的android開發人員麻煩告訴一下,在此先謝過各位了
static的一點個人理解
public class xuexi static 個人這麼理解 xuexi myxuexi new xuexi xuexi myxuexi2 new xuexi 程式執行時 當用 xuexi這個類 宣告這個 myxuexi 變數時,就會首先 載入xuexi類 在堆中 為xuexi類開闢一塊空間,在...
static的簡單理解
1 static 首先記住最重要的一點 類屬性被static修飾,那麼它會被當做gc的乙個root根節點,作為根節點也就意味著它基本上不會被 因此容易造成記憶體洩漏問題.2 static修飾類,方法,屬性 眾所周知,普通類是不能用static修飾的,只能修飾內部類 注意的是當乙個內部類沒有使用sta...
extern和static的理解
extern可置於變數或者函式前,以表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數或函式時,在其它模組中尋找其定義。我們要在檔案1中定義了乙個變數,而在檔案2中需要用到,這該怎麼辦?只需要在使用時在變數前面加上extern即可,提示編譯器這是從另乙個檔案中分拿出來的變數。不過這裡需要注意一...