为2D数组添加sumCol方法

时间:2016-09-16 19:12:00

标签: java multidimensional-array

我正在尝试将sumCol()方法添加到我的类TwDArray中,然后在我的TwDArrayApp主方法中调用它。这就是我所拥有的:

public class TwDArray {
    public void sumCols(TwoDArray s1) {
        int[] answer;
        for(int i = 0; i < nRows; i++) {
            for(int j = 0; j < a[0].length; j++)
                answer = a[j][i] + a[i][j];
        }
    }
}

我不知道如何在我的主要方法中调用它,我开始:

public static void main(String[] args) {
    int maxRows = 20;
    int maxCols = 20;
    TwoDArray arr = new TwoDArray(maxRows, maxCols);
    TwoDArray arrb = new TwoDArray(maxRows, maxCols);
    TwoDArray arrc = new TwoDArray(maxRows, maxCols);
    int b[][] = {{1, 2, 3, 4}, {11, 22, 33, 44}, {2, 4, 6, 8},                   
            {100, 200, 300, 400}};

    arr.insert(b[0]); arr.insert(b[1]); arr.insert(b[2]);       
    arr.insert(b[3]);

    System.out.println("The original matrix: ");
    arr.display();

    /*arr.sumCols(maxRows, maxCols);*/
    System.out.printf("%4d", sumCols(arr));
}

我仍然非常擅长编程,可能会让它变得更加困难。任何方向或建议将不胜感激!请详细解释您的答案,以便我能理解。 - 这里有额外的代码,因为我一直在尝试不同的行,看看我是否可以让它工作

2 个答案:

答案 0 :(得分:0)

Java main()方法只能调用static的方法。在该计划的全球范围内。所以你有两种方法可以解决这个问题。

  1. 您可以按照以下方式设置方法static

    public static void sumCols(TwoDArray s1){
        // your code
    }
    

    并在main()方法中调用它(假设您已导入 班级):

       public static void main(String[] args){
        TwDArray.sumCols(arr)
       }
    
  2. 或者您可以将您的方法保持为非静态,并通过创建类作为对象来调用它,如下所示:

     public static void main(String[] args){
       TwDArray yourObject = new TwDArray();
      }
    

    然后像这样称呼它

      yourObject.sumCols(arr);
    

答案 1 :(得分:0)

你的&#39; TwoDArray&#39;来自&#39; TwDArray&#39;类?或者这是你的错字?

如果不同,您可以调用:

new TwDArray().sumCols(arr);

注意:非静态方法属于对象,因此在调用类中的成员方法之前创建对象。