2016-02-24 27 views
0

我想使ODE_solver成爲靜態,這樣我就可以爲多個ODE系統建模,而無需每次創建求解器類的實例。我想在ODEsystem對象中調用解算器。有沒有簡單的方法來做到這一點?在需要該類的實例的類中使用靜態方法

提前致謝!

靜態類:

public class ODE_solver { 
    public static double[] solveODE(ODESystem eqn, double time, double delta) { 
    // does computation 
    } 
} 

接口:

public interface ODESystem { 
    int getSystemSize(); 
    double[] getCurrentValues(); 
    double[] getFunction(double time, double[] values); 
} // end ODESystem interface 

我如何試圖訪問當前對象:

public class Star implements ODESystem { 
    // constants & variables 
    // methods required by the interface 
    public double[] getPosition(double time, double delta){ 
     return solveODE(this.ODESystem, time, delta); 
    } 
} 
+1

'ODE_Solver.solveODE(this,time,delta)'。 – resueman

回答

2

由於該方法的一個ODE_solver成員static ,請撥打此課程:

return ODE_solver.solveODE(this.ODESystem, time, delta); 
+0

還記得要導入Star類中的求解器類來訪問方法 – NiallMitch14

相關問題