2011-10-14 59 views

回答

0

創建該類的一個實例,然後做一個return instance.method();

0

在靜態方法中,創建類,其中非靜態方法是一個實例,並調用創建的對象上的非靜態方法。沒有其他方法,因爲一個非靜態方法可以調用其他非靜態靜態方法,並且它也可以使用對該類實例的引用(「this」);所以它只能算得上一個類的實例:

公共類A {

public int NonStaticMethodA() { 
    int val; 
    ..... 
    return val; 
} 
public int NonStaticMethodB() { 
    int val=this.NonStaticMethodA(); 
    ..... 
    return val; 
} 

}

公共類B {

public static void StaticMethod() { 
    A a = new A(); 
    int value = a.NonStaticMethodB(); 
    ..... 
} } 
0

如果您如果調用非靜態方法,則必須對包含該方法的類的實例執行此操作。

5

一個非靜態方法的字庫字是實例方法,因爲它只能在其類的一個實例上調用。因此,您需要的是使用new創建的類的實例,然後您可以在其上調用實例方法。

我建議閱讀Java教程中的introduction to OO concepts

2

很難知道你想,沒有任何代碼(甚至企圖將是一件好事)做什麼,但是......

也許你想Singleton模式:

public class MyClass { 
    private static final MyClass INSTANCE = new MyClass(); 
    private MyClass() {} 
    public static MyClass getInstance() { 
     return INSTANCE; 
    } 
    public int someMethod() { 
     // return some value; 
    } 
} 

然後從其他類:

public class TheirClass { 
    public static int whatever() { 
     return MyClass.getInstance().someMethod(); 
    } 
} 
0

只要其他類型的對象是靜態方法中提供,你可以調用該對象的方法。

該對象可以在靜態方法中創建,作爲參數傳遞給它,也可以是靜態字段。