總結:大家對這個問題都有乙個共識:那就是例項化方法更多被使用和穩妥,靜態方法少使用。
有時候我們對靜態方法和例項化方法會有一些誤解。
1、大家都以為「靜態方法常駐記憶體,例項方法不是,所以靜態方法效率高但佔記憶體。」
事實上,他們都是一樣的,在載入時機和占用記憶體上,靜態方法和例項方法是一樣的,在型別第一次被使用時載入。呼叫的速度基本上沒有差別。
2、大家都以為「靜態方法在堆上分配記憶體,例項方法在堆疊上」
事實上所有的方法都不可能在堆或者堆疊上分配記憶體,方法作為**是被載入到特殊的**記憶體區域,這個記憶體區域是不可寫的。
方法佔不占用更多記憶體,和它是不是static沒什麼關係。
因為欄位是用來儲存每個例項物件的資訊的,所以欄位會占有記憶體,並且因為每個例項物件的狀態都不一致(至少不能認為它們是一致的),所以每個例項物件的所有欄位都會在記憶體中有一分拷貝,也因為這樣你才能用它們來區分你現在操作的是哪個物件。
但方法不一樣,不論有多少個例項物件,它的方法的**都是一樣的,所以只要有乙份**就夠了。
靜態方法和例項化方法的區別
靜態方法和例項化方法的區別,方法是我們每天都在寫,大多都使用例項化方法,而很少使用靜態方法,問原因也說不出來所以然,或者簡單的回答兩者定義的區別,靜態方法不需要new就可以使用 例項化方法需要new了以後才可以使用。我們真的理解了嗎?從實際專案開發說起,這裡有開發專案的三種方式 開發專案中把bll和...
Python的類方法 靜態方法和例項化方法
coding utf 8 class a def init self,name self.name name staticmethod defstaticfun print this is static function classmethod defclassfun cls print this ...
靜態方法和例項方法
靜態方法 靜態方法是不屬於特定物件的方法,靜態方法可以訪問靜態成員變數,靜態方法不可以直接訪問例項變數,可以在例項函式呼叫的情況下,例項變數做為引數傳給靜態方法。靜態方法也不能直接呼叫例項方法,可以間接呼叫,首先要建立乙個類的例項,然後通過這一特定物件來呼叫靜態方法。例項方法 乙個例項方法的執行與特...