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


靜態方法:是使用static關鍵字修飾的方法,又叫類方法.屬於類的,不屬於對象,
在實例化對象之前就可以通過類名.方法名調用靜態方法。

非靜態方法:是不含有static關鍵字修飾的普通方法,又稱為實例方法,成員方法。屬於對象的,不屬於類的。

1、調用方法不同

  靜態方法可以直接調用,類名調用和對象調用。(類名.方法名 / 對象名.方法名)
  但是非靜態方法只能通過對象調用。(對象名.方法名)

2、生命周期不同

  靜態方法的生命周期跟相應的類一樣長,靜態方法和靜態變量會隨着類的定義而被分配和裝載入內存中。一直到線程結束,靜態屬性和方法才會被銷毀。
  (也就是靜態方法屬於類) 
  非靜態方法的生命周期和類的實例化對象一樣長,只有當類實例化了一個對象,非靜態方法才會被創建,而當這個對象被銷毀時,非靜態方法也馬上被銷毀。
  (也就是非靜態方法屬於對象)

靜態變量的優點

  • 屬於類級別的,不需要創建對象就可以直接使用.
  • 全局唯一,內存中唯一,靜態變量可以唯一標識某些狀態.
  • 在類加載時候初始化,常駐在內存中,調用快捷方便.

應用場景:

  1. 靜態方法最適合工具類中方法的定義;比如文件操作,日期處理方法等.
  2. 靜態變量適合全局變量的定義.

https://zhuanlan.zhihu.com/p/258751142


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM