java中為什麼要有靜態方法和非靜態方法之分

2021-04-19 02:01:59 字數 884 閱讀 7741

1樓:匿名使用者

靜態方法通抄常是提供給外部襲呼叫,無需例項物件即可bai呼叫通常用來du做一些很通用的事情就zhi會做成靜態dao的,因為靜態方法,靜態變數都會佔用靜態記憶體區域

jvm沒有退出是不會釋放記憶體空間的

非靜態方法就不用解析了吧,物件被**了,記憶體也就可以釋放了

2樓:匿名使用者

靜態方法沒有物件,也就沒有物件的資料,無法用於多個例項,或是陣列之類的場合。

專而非靜態方法,必須屬建立例項後才可以使用,在很多場合會非常繁瑣。

你可以理解為,非靜態方法用於物件。靜態方法用於工具類。

再有一個理解,這兩者的區別是,非靜態方法隱式的將當前物件作為引數傳遞了進去。

如果全部都是靜態方法,那麼**其實就類似c或者basic了,不是物件導向了。

全部都不是靜態方法,其實可以實現,只是**量會增加很多。

3樓:東東程式猿

靜態的方來

法和屬性

,你可以這麼自理解,就是所有物件公用的,比如一個屬性是這樣定義的:

private static string name;

那麼他的意思就是說,因為他是靜態的,我所有的物件的name屬性全部都一樣,

如果我有n個這個類的物件,我改變其中一個物件的name屬性,所有的物件的name屬性全部會變化。所以,static關鍵字的特點,你可以理解為公用性。

同樣的,靜態方法和非靜態方法的區別也顯而易見,因為所有的物件都擁有同樣的東西,那麼靜態方法,通常我們不會用物件去呼叫,而是直接用類名去點。

因為這個類的所有物件的這個方法都是公用的嘛。

而且靜態方法中是不允許使用this關鍵字的,因為它並不唯一屬於任何一個物件,

而是大家共有的。

C中靜態方法和非靜態方法的區別

c 靜態方法與非靜態方法的區別不僅僅是概念上的,那麼他們有什麼具體的區別呢?讓我們通過本文向你做一下解析。c 的類中可以包含兩種方法 c 靜態方法與非靜態方法。那麼他們的定義有什麼不同呢?他們在使用上會有什麼不同呢?讓我們來看看最直觀的差別 使用了static 修飾符的方法為靜態方法,反之則是非靜態...

請教 verilog分頻中為什麼要有rst的輸入控制訊號

rst訊號的作用就是復位,使得分頻時鐘clk odd在fpga或cpld的復位過程中保持為0狀態,不會形成時鐘脈衝訊號,從而防止了由clk odd驅動的電路產生誤觸發。這是一種可靠性的做法,並不一定非得要有rst訊號,當然,如果沒有rst復位訊號,那麼你得保持在復位過程中,由clk odd驅動的訊號...

java中什麼是顯式型別轉換和隱式型別轉換

比如說有一個類person,然後有一個類man繼承了person,然後說得通俗一點,人有很多屬性,人的屬性男人都有,但是男人有的屬性不是所有人都有,這也就意味著你可以說一個男人是人,但是你不能說一個人就是男人,對不對?轉換成 的話就是 有一個男人 man m new man 男人說成是人的時候 我們...