2014-01-28 114 views
-6

究竟是爲什麼某個特定類的靜態方法不能引用類(對象)的同一個實例的原因及其他類(對象)的實例?爲什麼靜態方法不能引用實例方法?

我在課本閱讀。

+0

因爲靜態方法沒有綁定到對象實例。 Java如何知道要使用什麼對象?可以在不創建任何實例的情況下調用靜態方法。 – kwatford

+0

可以調用靜態方法而無需實例化該類的對象。如果傳遞給靜態方法的對象實例可以引用實例方法。 –

回答

1

由於static可以在沒有類的任何實例中使用。例如,當您使用Integer.parseInt(...)時,您使用類Integer的名稱調用它,但您從未創建實例。

System.out.println(Integer.parseInt("123")); // Called with the name of the class 

那麼,如果你可以引用一個實例在static方法內呢?如果用戶使用類的名稱調用它(不創建任何實例),則該方法不會有任何實例參考。

注意,你也可以調用一個static方法與實例,但推薦的方法是用類的名字來稱呼它,以強調它是一個static方法:

Integer i = 0; 
System.out.println(i.parseInt("123")); // Can also be called with an instance, but not recommended 
0

哪個實例將在static method(其不與任何實例相關聯)被參照?

答:無/不可判定;它沒有任何意義,因爲可以有0..n個實例。當你創建的那個特定class.Static方法的對象,如果你創建特定類的實例只能訪問實例方法

0

實例方法,纔可以訪問。

相關問題