-1

我必须编写一个程序,以 2D 数组记录 5 个不同商店 12 个月的利润。我让构造函数接受利润的输入。当我尝试编译时,我的 totalProfit 方法存在问题。它说“不能取消引用双精度”并突出显示我的第一个 for 循环的 .length 部分。

import java.util.*;
public class Profits
{
    static private double[][] profit=new double[5][12];
    private Scanner in=new Scanner(System.in);
    public static void main(String[] args){
        System.out.println("Please input your profits, each month at a time.");
        Profits year11=new Profits();
        System.out.println(Arrays.deepToString(profit));
    }
    public Profits(){
        for(int b=0; b<profit.length; b++){
            for(int m=0; m<profit[0].length; m++){
                profit[b][m]=in.nextDouble();
            }
        }    
    }
    public double totalProfit(){
        double profit=0.0;
        for(int b=0; b<profit.length; b++){
            for(int m=0; m<profit[0].length; m++){
                profit+=profit[b][m];
            }
        }  
        return profit;
   }

}

4

1 回答 1

8

您已经声明了一个与数组double同名的类型的局部变量。double[][]

double profit=0.0;

该变量profit现在隐藏了实例变量。

  • 要么更改变量的名称 - 更可取。
  • 或者使用->来限定对profit数组的访问, - 只是为了完成答案。thisthis.profit.lengththis.profit[0].length
于 2013-10-08T20:26:17.253 回答