Java Don';无法理解符号错误--第一次使用数组

Java Don';无法理解符号错误--第一次使用数组,java,arrays,Java,Arrays,我正在为我的Java类编写一个程序。这些说明对我来说似乎很直接,但我会把它们贴在下面,以防有人对它们有不同的解释 编写具有以下字段的雨量类: •存储12个月内每个月降雨量的双倍阵列 年份(第一个指数对应于1月,第二个指数对应于 二月等) 该类还应具有以下方法: •返回全年总降雨量的方法 •返回当年月平均降雨量的方法 •以字符串形式返回降雨量最多的月份的方法 •将降雨量最少的月份作为字符串返回的方法 在一个程序中演示该类,该程序从用户处获取12个双倍(取 按一年中的月份顺序加倍,第一个对应于 一月

我正在为我的Java类编写一个程序。这些说明对我来说似乎很直接,但我会把它们贴在下面,以防有人对它们有不同的解释

编写具有以下字段的雨量类:

•存储12个月内每个月降雨量的双倍阵列 年份(第一个指数对应于1月,第二个指数对应于 二月等)

该类还应具有以下方法:

•返回全年总降雨量的方法 •返回当年月平均降雨量的方法 •以字符串形式返回降雨量最多的月份的方法 •将降雨量最少的月份作为字符串返回的方法

在一个程序中演示该类,该程序从用户处获取12个双倍(取 按一年中的月份顺序加倍,第一个对应于 一月份的降雨量等)。执行输入验证:如果用户输入负数 数字,忽略它,并继续要求他们输入,直到你有12个 非负双打

一旦用户为您提供了所有12个双倍,创建一个降雨实例 类并调用其方法,打印出总降雨量、平均降雨量 月降雨量、降雨量最多的月份和降雨量最少的月份 雨,每一个都在一条单独的线上

我们从一开始就得到了一些代码,除了方法之外,似乎什么都有。这是给我们的

import java.util.Scanner;

public class RainFall {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        double[] rainfall = new double[12];
        int i = 0;
        System.out.print("Enter rainfall for month 1:");

        while(i < 12){
            double rain = scanner.nextDouble();
            if(rain >= 0){
                rainfall[i] = rain;
                i++;
            }
            if(i!=12){
                System.out.print("Enter rainfall for month " + (i+1) + ":");
            }
        }

        RainFall rf = new RainFall(rainfall);
        System.out.println(rf.total());
        System.out.println(rf.average());
        System.out.println(rf.most());
        System.out.println(rf.least());

    }
    //add code here
}
import java.util.Scanner;
公共级降雨{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
双[]降雨量=新双[12];
int i=0;
System.out.print(“输入第1个月的降雨量:”);
而(i<12){
double rain=scanner.nextDouble();
如果(雨>=0){
降雨[i]=降雨;
i++;
}
如果(i!=12){
系统输出打印(“输入月份降雨量”+(i+1)+“:”;
}
}
降雨量rf=新降雨量(降雨量);
System.out.println(rf.total());
System.out.println(rf.average());
System.out.println(rf.most());
System.out.println(rf.least());
}
//在这里添加代码
}
所以我把这个放在我们应该添加代码的地方

public RainFall(double[] a) {
        rainfall = a;
}

public static double total() {
    double t = 0.0;
    for(int i = 0; i < rainfall.length; i++) {
        t += rainfall[i];
    }
    return t;
}
public static double average() {
    double v = 0.0;
    double t = 0.0;
    for(int i = 0; i < rainfall.length; i++) {
        t += rainfall[i];
    }
    v = t/rainfall.length;
    return v;
}
public static String most() {
    String months[]={"January", "February", "March", "April", "May", "June", "July", "August", "September",
                    "October", "November", "December"};
    int j = 0;
    int max = rainfall[0];
    for(int i = 1; i < rainfall.length; i++) {
        if(rainfall[i] > max) {
            max = rainfall[i];
            j = i;
        }
    }
    return months[j];
}
public static String least() {
    String months[]={"January", "February", "March", "April", "May", "June", "July", "August", "September",
                    "October", "November", "December"};
    int j = 0;
    int min = rainfall[0];
    for(int i = 1; i < rainfall.length; i++) {
        if(rainfall[i] < min) {
            min = rainfall[i];
            j = i;
        }
    }
    return months[j];
}
公共降雨量(双[]a){
降雨量=a;
}
公共静态双倍总计(){
双t=0.0;
对于(int i=0;i最大值){
max=降雨量[i];
j=i;
}
}
返回月份[j];
}
公共静态字符串least(){
字符串月份[]={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”,
“十月”、“十一月”、“十二月”};
int j=0;
int min=降雨量[0];
对于(int i=1;i

如果有人能帮我解决这个问题,我将不胜感激。我真的不知道如何解决这个问题。

您正在尝试从静态方法访问实例变量。您需要先声明实例变量
raining
,然后才能使用它。另外,在
min()
max()
函数中,缺少对
int
的一些强制转换

请尝试更改添加到此中的代码:

public class RainFall {

    public double[] rainfall;


    public RainFall(double[] a) {
        this.rainfall = a;
    }

    public double total() {
        double t = 0.0;
        for(int i = 0; i < rainfall.length; i++) {
            t += rainfall[i];
        }
        return t;
    }
    public double average() {
        double v = 0.0;
        double t = 0.0;
        for(int i = 0; i < rainfall.length; i++) {
            t += rainfall[i];
        }
        v = t/rainfall.length;
        return v;
    }
    public String most() {
        String months[]={"January", "February", "March", "April", "May", "June", "July", "August", "September",
                        "October", "November", "December"};
        int j = 0;
        int max = (int) rainfall[0];
        for(int i = 1; i < rainfall.length; i++) {
            if(rainfall[i] > max) {
                max = (int) rainfall[i];
                j = i;
            }
        }
        return months[j];
    }
    public String least() {
        String months[]={"January", "February", "March", "April", "May", "June", "July", "August", "September",
                        "October", "November", "December"};
        int j = 0;
        int min = (int) rainfall[0];
        for(int i = 1; i < rainfall.length; i++) {
            if(rainfall[i] < min) {
                min = (int) rainfall[i];
                j = i;
            }
        }
        return months[j];
    }
}
公共类降雨{
公众双[]降雨;
公众降雨量(双倍[]a){
这就是降雨量=a;
}
公共双总额(){
双t=0.0;
对于(int i=0;i最大值){
max=(int)降雨量[i];
j=i;
}
}
返回月份[j];
}
公共字符串最小值(){
字符串月份[]={“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”,
“十月”、“十一月”、“十二月”};
int j=0;
int min=(int)降雨量[0];
对于(int i=1;i
还可以在此堆栈交换帖子中了解
静态
实例
的含义:


快乐编码

问题到底是什么?如果您有错误,请阅读并发布。这很重要。它告诉你什么是错的,在哪里。你需要指定编译器错误,它会指出问题所在,用什么符号。还要考虑使用更有意义的变量NA。