體形式如: 類(lèi)名.方法名
而實(shí)例化時(shí)必須使用new關(guān)鍵字,具體格式如:
ArrayList one=new ArrayList();
靜態(tài)是類(lèi)的,實(shí)例是對象的.oo的觀(guān)點(diǎn)就是靜態(tài)成員就是類(lèi)所有對象所具備的特點(diǎn),而實(shí)例成員是每個(gè)對象自有的實(shí)現,是不一樣的.比如說(shuō)每個(gè)人都有頭發(fā),眼睛,耳朵,名字,性別,年齡,身高等等.這些都是靜態(tài)的,但是每個(gè)人的這些屬性是不一樣的,這些不同的屬性就是實(shí)例化.所以也可以說(shuō)靜態(tài)方法不需要依賴(lài)類(lèi)當中的屬性,靜態(tài)方法本身就可以封閉的完成一個(gè)功能,而實(shí)例的方法更多會(huì )用到類(lèi)中的屬性.
靜態(tài)方法在它一啟動(dòng)的時(shí)候就實(shí)例化了,因而靜態(tài)內存是連續的,而且靜態(tài)內存是有限制的;而實(shí)例方法是在程序運行中生成內存的,實(shí)例申請的是離散的空間.靜態(tài)方法大多用的數據連接上.
關(guān)于靜態(tài)方法和實(shí)例方法的一些誤區。 一、 靜態(tài)方法常駐內存,實(shí)例方法不是,所以靜態(tài)方法效率高但占內存。 事實(shí)上,方法都是一樣的,在加載時(shí)機和占用內存上,靜態(tài)方法和實(shí)例方法是一樣的,在類(lèi)型第一次被使用時(shí)加載。調用的速度基本上沒(méi)有差別。 二、 靜態(tài)方法在堆上分配內存,實(shí)例方法在堆棧上。 事實(shí)上所有的方法都不可能在堆或者堆棧上分配內存,方法作為代碼是被加載到特殊的代碼內存區域,這個(gè)內存區域是不可寫(xiě)的。 三、 實(shí)例方法需要先創(chuàng )建實(shí)例才可以調用,比較麻煩,靜態(tài)方法不用,比較簡(jiǎn)單。 事實(shí)上如果一個(gè)方法與他所在類(lèi)型的實(shí)例無(wú)關(guān),那么它就應該是靜態(tài)的,決不會(huì )有人把它寫(xiě)成實(shí)例方法。所以所有的實(shí)例方法都與實(shí)例有關(guān),既然與實(shí)例有關(guān),那么創(chuàng )建實(shí)例就是必然的步驟,沒(méi)有...
靜態(tài)方法中的代碼只能使用類(lèi)的靜態(tài)成員,而不能直接使用非靜態(tài)成員。這是因為靜態(tài)方法屬于類(lèi)所有,在其中不能判斷非靜態(tài)成員究竟屬于那個(gè)對象。而實(shí)力方法既能夠使用靜態(tài)成員,也能夠使用非靜態(tài)成員。
靜態(tài)構造函數
實(shí)例構造函數屬于對象所有,而是用static修飾符的靜態(tài)構造函數為類(lèi)的所有對象共享,并且只在首次使用該類(lèi)時(shí)被調用。
聯(lián)系客服