2016-05-13 14 views
0

おはようございます。私はこれを介して私の方法を働いていると別のクラスの中でクラスを使用することに関してブロックをヒットしました。 Eclipseは、エラーは静的でないメソッドへの静的参照を呼び出すことの結果であることを通知します。 私がしようとしているのは、1つのプログラムで「逆」メソッドを複数回使用することです。私は問題が "逆"クラスにあることを知っています、そして、メインメソッドのコードからの入力を受け入れるためにクラスを正しい方法でフォーマットすることを探しています。配列演算子を呼び出す

public static void main (String [] args){ 
     //creating a test array 
     int [] myArray = {0, 1, 2, 3, 4, 5, 6,7 ,8 ,9}; 
     int [] myArrRev = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; 
     reverse (myArray); 
     if (Arrays.equals(myArray, myArrRev)) 
     System.out.println("reverse worked for 10 elements."); 


     int [] myArray2 = {0, 1, 2, 3, 4, 5, 6,7 ,8}; 
     int [] myArrRev2 = { 8, 7, 6, 5, 4, 3, 2, 1, 0}; 
     reverse (myArray2); 
     if (Arrays.equals(myArray2, myArrRev2)) 
     System.out.println("reverse worked for 9 elements."); 


     int [] myArray3 = {0}; 
     int [] myArrRev3 = {0}; 
     reverse (myArray3); 
     if (Arrays.equals(myArray3, myArrRev3)) 
     System.out.println("reverse worked for 1 element."); 

     int [] myArray4 = {}; 
     int [] myArrRev4 = {}; 
     reverse (myArray4); 
     if (Arrays.equals(myArray4, myArrRev4)) 
     System.out.println("reverse worked for 0 elements."); 
    } 




    void reverse(int arr[]){ 
     for(int i = 0; i < arr.length/2; i++) 
     { 
     int temp = arr[i]; 
     arr[i] = arr[arr.length - i - 1]; 
     arr[arr.length - i - 1] = temp; 
     } 
    } 


} 

答えて

2

変更するメソッド宣言:

static void reverse(int arr[]) 
+0

は、それが静的にすることなくこれを行う方法はありますか?私はメインメソッドから "静的"を削除しようとしましたが、明らかに動作しません。 –

+0

@JWelch静的にすることの問題は何ですか?しかし、ええ、あなたはクラスのインスタンスを作成し、そのインスタンスを使って非静的メソッドを呼び出すことができます。しかし、なぜ?そのポイントは何ですか?このメソッドはクラスの*フィールドを使用していないので、なぜですか? – Andreas

関連する問題