2015-05-13 21 views
0

我想運行Eclipse下面的代碼作爲Java Application,它需要主要的方法來定義。在所有試圖做我自己是接收消息:如何定義運行Java程序的主要方法?

方法TemperatureNormalizer()被undefiened該類型TemperatureNormalizer

能否請你幫我把它寫正確?

import java.util.Arrays; 
public class TemperatureNormalizer { 
    private double[] data; 

    public TemperatureNormalizer(double[] list) { 
     data = list; 
    } 

    public static void main(String[] args) { 
     TemperatureNormalizer(); 
    } 

    public double getAdjustedAverage() { 
     double max = getMax(); 
     double min = getMin(); 
     double sum = getSum(); 

     int insertAt = 0; 

     for (int i = 0; i < data.length; i++) { 

      if (data[i] == max || data[i] == min) { 
       for (int j = i; j > insertAt; j--) { 
        data[j] = data[j - 1]; 
       } 
       data = Arrays.copyOf(data, data.length - 1); 
      }  
     } 
     return (sum - max - min)/data.length; 
    } 

    public double getMax() { 
     double current = 0; 
     for (int i = 0; i < data.length; i++) { 
      if (data[i] > current) { 
       current = data[i]; 
      } 
     } 
     return current; 
    } 

    public double getMin() { 
     double current = data[0]; 
     for (int i = 0; i < data.length; i++) { 
      if (data[i] < current) {  
       current = data[i]; 
      } 
     } 
     return current; 
    } 

    public double getSum() { 
     double sum = 0; 
     for (double d : data) { 
      sum = sum + d; 
     } 
     return sum; 
    } 
} 
+1

您需要構建TemperatureNormalizer的實例,因此在主要方法中添加'TemperatureNormalizer temperatureNormalizer = new TemperatureNormalizer();'然後在新行上調用方法'temperatureNormalizer .getAdjustedAverage()' –

回答

1

在你的主要方法中,初始化你的對象:TemperatureNormalizer temperatureNormalizer = new TemperatureNormalizer();

另外,你的類TemperatureNormalizer有一個構造函數,它需要一個Double數組。請在您的主要方法中提供一個數組,或者創建一個不帶參數的額外構造函數。

public TemperatureNormalizer() 
{ 
    // do stuff (or not) 
} 
+0

謝謝您,幫助 – vehk

0
  1. 您需要在main方法來創建該類的對象。您已經創建了參數化構造函數,因此編譯器不會創建默認構造函數。你必須爲此編碼。

    public TempratureNormalizer(){ 
    // implementation here... 
    } 
    
    TempratureNormalizer TempNorm = new TempratureNormalizer(); 
    
  2. 如果你調用參數的構造函數是

    TempratureNormalizer(double[] list) 
    

    則主要方法應該是

    double[] list = {2.0,3.45,1.09} // give your dynamic values 
    TempratureNormalizer TempNorm = new TempNormailzer(list); 
    
+0

感謝您的解釋! – vehk

0

您應該創建一個測試類(例如)其中將包含您的所有操作:

class Test{ 
    public static void main (String[] args){ 
     TemperatureNormalizer temperatureNormalizer = new TemperatureNormalizer(); 
    } 
} 

如果你所有的類都在同一個文件夾中,編譯器就沒有問題。

0

如果你只是想運行這個程序,然後在程序如下改變主要方法:

public static void main(String[] args) { 
     double a1[] = {1,2,3,4}; 
     TemperatureNormalizer temp = new TemperatureNormalizer(a1); 
     System.out.println("Avg:" + temp.getAdjustedAverage()); 
    } 

它會給輸出:

Avg: 1.6666666666666667 
+0

是否有任何簡單的方法在eclipse中爲程序運行配置,它沒有主要的方法? – vehk

+0

您需要運行Java程序的主要方法。它不可能在沒有主要方法的情況下運行,因爲執行將僅從主要方法開始。 – Madhusudan

0

主要方法是靜態的方法,它可以工作只有靜態和初始化的數據。你應該聲明你的變量「data」和method temp normalize爲static,或者創建當前類的實例。 但是,至於我,你應該正確地編寫代碼(在結構挖掘中)。爲您的功能創建新類並使用main方法在類中創建它的實例。

相關問題