我希望将Eclipse
中的以下代码作为Java Application
运行,并且需要使用main方法进行定义。在所有的尝试中,我自己都收到了一条消息:
方法TemperatureNormalizer()对于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;
}
}
答案 0 :(得分:1)
在main方法中,初始化对象:TemperatureNormalizer temperatureNormalizer = new TemperatureNormalizer();
另外,你的类TemperatureNormalizer有一个构造函数,它需要一个Double数组。在main方法中给出一个数组,或者创建一个不带参数的额外构造函数。
public TemperatureNormalizer()
{
// do stuff (or not)
}
答案 1 :(得分:0)
您需要在main方法中创建类的Object。您已经创建了参数化构造函数,因此编译器不会创建默认构造函数。你必须为此编码。
public TempratureNormalizer(){
// implementation here...
}
TempratureNormalizer TempNorm = new TempratureNormalizer();
如果您正在调用参数化构造函数
TempratureNormalizer(double[] list)
那么主要方法应该是
double[] list = {2.0,3.45,1.09} // give your dynamic values
TempratureNormalizer TempNorm = new TempNormailzer(list);
答案 2 :(得分:0)
您应该创建一个包含所有操作的测试类:
class Test{
public static void main (String[] args){
TemperatureNormalizer temperatureNormalizer = new TemperatureNormalizer();
}
}
如果所有类都在同一个文件夹中,编译器就没有问题。
答案 3 :(得分:0)
如果您只想运行此程序,请按如下方式更改程序中的main方法:
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
答案 4 :(得分:0)
主要方法是静态方法,它只能用于静态和初始化数据。您应该将变量“data”和方法temp规范化为static,或者生成当前类的实例。 但是,对我来说,你应该正确地编写代码(在结构挖掘中)。为您的功能创建新类,并使用main方法在类中创建它的实例。