2012-04-10 23 views
0

如何從包中的所有類訪問方法而不創建該類的對象。如何從包中的所有類訪問方法而無需在java中創建對象

主類

public class mainclass 
{ 
public void methodOne() 
{ 
subclass obj = new subclass(); 
System.out.println("Height and Width" + obj.width()+" "+obj.height()); 
} 
} 

我的第二類

public class subclass 
{ 
public int width() 
{ 
return (int)windowWidth; 
} 

public int height() 
{ 
return (int)windowHeight; 
} 
} 

是否可以調用寬度()和高度(),而不出不來g子類的對象

+0

爲什麼你不希望創建'subclass'實例的實例? – 2012-04-10 04:18:39

回答

1

否。對於非靜態方法,您需要一個實例來調用它們。

+0

**感謝蒂洛** 這解決了我的問題,我 做出是靜態的,嗷嗷我可以調用從mainclass(寬度()和高度()方法)再次 感謝 – sam 2012-04-10 04:16:30

2

嗯,不,簡單地說。沒有辦法在不改變某些東西的情況下調用這些方法。

您可以標記方法static,然後可以在不創建對象的情況下調用它們。但是,如果windowWidthwindowHeight是實例成員,那麼您將無法訪問它們,因此方法本身的代碼將無法編譯。然後,他們不再是同樣的方法,顯然 - 所以答案仍然是,真的,不是。

+0

**感謝歐內斯特·弗裏德曼山** 這解決了我的問題 我發的方法是靜態的,嗷嗷我可以調用從mainclass() 再次感謝 – sam 2012-04-10 04:16:07

1

您必須創建一個對象的實例來調用它的方法。除非方法在調用對象上。

EDIT

以上爲真用於非靜態方法。另一方面,靜態方法可以並應該在類級別訪問(即不需要實例)。

+0

**感謝蒂姆POTE .. ** 這解決了我的問題,我 做出的寬度()和高度()方法是靜態的,我可以從mainclass()調用width()和height() 再次感謝 – sam 2012-04-10 04:16:43

+0

我們是否得到了接受的答案?也許誰先去那裏? (@Akash在這種情況下)。 – 2012-04-10 04:18:59

1

您必須聲明,方法,靜態的,如果你想使用而不產生特定的類

+0

**感謝Akash Yadav ** 解決了我的問題 我使該方法是靜態的,我可以從mainclass()調用width()和height() 再次感謝 – sam 2012-04-10 04:17:32

相關問題