簡體   English   中英

java中靜態方法的目的

[英]Purpose of Static methods in java

我對java中靜態方法的使用感到困惑,例如,如果main方法是靜態的,那么它是有意義的,但是在編碼時我們有了對象,例如

 JFrame frame= new JFrame(); 
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// here why not frame.EXIT_ON_CLOSE

我們使用的方式相同

 GridBagConstraints c= new GridBagConstraints();// we have an object but still
 c.anchor = GridBagConstraints.PAGE_END; 

那么有人可以解釋一下,我有什么特別的理由嗎?

靜態方法和字段屬於類中的所有對象,而不屬於非靜態方法,屬於類的特定實例 在您的示例中,無論您創建多少個JFrame frame對象,訪問frame.EXIT_ON_CLOSE都會產生相同的精確結果。 為了明確說明這一事實,使用static成員(也稱為“類成員”)。

相同的邏輯適用於靜態方法:如果方法不訪問實例變量,則其結果將獨立於對象的狀態。 main(String[] args)方法就是這樣一個例子。 其他常見示例包括各種工廠方法,基元的解析方法等。 這些方法不在實例上運行,因此它們被聲明為靜態。

JFrame.EXIT_ON_CLOSE不是方法。 這是靜態場。 看到這個文檔

如果您不希望某些與類不對象關聯的功能,則可以使用靜態方法。

- JFrame.EXIT_ON_CLOSEJFrame類中的靜態變量 (字段) 不是方法

- static方法是類方法,例如在Math類中沒有實例變量,其構造函數是私有的。 所以靜態工作完美......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM