2013-02-01 62 views
-1

假設我有一個類A,它有自己的實例變量。它有一個名爲doSomething()的方法,它是一個static方法。現在,A增加了另一個類B作爲一些指針。在類B內部,我運行一些邏輯並確定需要運行doSomething()中包含的代碼。我可以說A.doSomething()可以嗎?如果我有一個名爲aA實例,adoSomething()方法會被調用嗎?Java - 將調用靜態方法調用所有實例上的方法嗎?

+1

你是數學家,不是嗎? – AlexWien

+0

對不起?你什麼意思? – Jeeter

+0

我會建議,只需寫下代碼並在方法中添加一些打印語句即可。執行代碼廣告,看看會發生什麼。 – Arham

回答

7

如果您調用A.doSomething()它只會執行該靜態方法。說adoSomething沒有意義,因爲靜態方法不屬於您的類的對象或實例。

+0

好的。謝謝! – Jeeter

2

靜態方法不屬於任何特定的實例。所以當你調用A.doSomething()時,如果有0個,1個或一個A的實例,沒關係。調用一個方法。

0

雖然我質疑你的一些術語(我感覺你知道你在說什麼,你只是沒有完全說出來),回答你的問題,不,因爲它不能。靜態方法與類相關聯。調用a.staticMethod()與A.staticMethod相同。兩者都做同樣的事情。

2

您的第一個問題的答案是:「我可以只說A.doSomething()?」
是的。正如其他答案所指出的那樣... doSomething()static是一個類方法,因此確實需要爲它的調用創建A對象。

回答你的第二個問題:「如果我有A稱爲a一個實例,並adoSomething()方法被調用」
事實上它會,但它類似於說A.doSomething()。因此,用這種方式沒有任何意義。如果有的話,當你閱讀代碼時,它會在以後增加你的困惑。