2015-05-13 20 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方法在类中创建它的实例。

相关问题