2016-09-16 18 views
0

ためsumColメソッドの追加、私は私のクラスTwDArrayにsumCol()メソッドを追加して、私のTwDArrayApp mainメソッドでそれを呼び出すようにしようとしています。ここで私が持っているものです。2次元配列

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)); 
} 

それは何ですか?どのような指示や提案もありがとう!私はそれを理解できるように詳細をあなたの答えを説明してください。私はそれが唯一のstaticすなわちあるメソッドを呼び出すことができます

+0

だからあなたは、各列のために一緒にすべての値を追加することにより、1次元配列にあなたの2D配列を崩壊方法をしたいですか? – Jeutnarg

+0

は、私は、各列内の行を追加し、その後、私は非静的メソッドを維持し、私のメインでそれを起動しようとしていた配列 – Jane

答えて

0

Javaのmain()方法を仕事を得ることができるかどうかを確認するために、異なるラインをしようとしてきたので、 --Thereはここで余分なコードです。プログラムのグローバルな範囲内でだからあなたはこれに対処する方法の2つの選択肢があります。

  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); 
    
+0

から各列の合計を表示したいです。私はあなたが正しいパラメータを渡さなければならないことを知っています、そして、それは私が間違っていることかもしれません。 – Jane

+0

@Janeその場合、2番目の選択肢が最良の行動措置です。適切なパラメータを渡していることを確認するには、メソッドを渡す直前にコンテンツをコンソールに出力してみてください。これは、あなたがそのメソッドに与えていることを正確に伝えます。問題が解決した場合は、問題が存在するかどうかを調べる方法を試してみてください。ただあきらめないで! – infamoustrey

0

ようにそれを呼び出すには、 'TwDArray' クラスは異なる1あなたの 'TwoDArray' クラスですか?それともあなたのタイプミスですか?

new TwDArray().sumCols(arr); 

注:非静的メソッドは、オブジェクトに属しているので、あなたはクラスのメンバメソッドを呼び出す前にオブジェクトを作成

それが異なる場合

は、あなたは次のように呼び出すことができます。

+0

それはタイプミスだったので、2つのクラスがTwoDArrayとTwoDArrayAppです。アプリケーションには私の主な呼び出すメソッドが含まれていて、TwoDArrayはinsert、display、sumColなどのメソッドが格納されているクラスです – Jane