[英]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_CLOSE
是JFrame
類中的靜態變量 (字段) 不是方法 。
- static
方法是類方法,例如在Math類中沒有實例變量,其構造函數是私有的。 所以靜態工作完美......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.