2013-04-16 47 views
2

爲什麼我在check(values)上得到「無效方法聲明;返回類型爲required」錯誤;無效方法聲明問題

public class Swap 
{ 
    int[] values = {5, 6, 7, 8, 9}; 
    check(values); 


    public void swapAdjacentElemnts(int[] values) 
    { 
     for(int i=0; i<values.length - 1; i+=2) 
     { 
      int tempInt = values[i]; 
      values[i] = values[i+1]; 
      values[i+1]=tempInt; 
     } 
    } 

    public int[] check(int[] values) 
    { 
     swapAdjacentElements(values); 
     return values; 
    } 
} 
+3

'check(values);'應該包含在方法中。 – phadaphunk

+0

或在一個靜態塊中。但在這種情況下,其他一切都必須是靜態的。 – NeplatnyUdaj

回答

3

您試圖在方法外執行代碼。您致電check必須住在某種方法中,而不是在類聲明中。

如果您意味着這是在構造函數中,你可以這樣做:

public Swap() 
{ 
    check(values); 
} 
0

你不能把方法的類主體直接調用。 該呼叫應該在另一種方法內(就像您使用swapAdjacentElements一樣)。

也許你的意思是在類的構造函數或main方法中進行檢查。

public class Swap 
{ 
    int[] values = {5, 6, 7, 8, 9}; 

    public Swap() { //class constructor 
     check(values); 
    } 

    public static void main(String[] args) { //main method 
     check(values); 
    } 

    //everything else.. 
} 

希望有所幫助。

0

在某些情況下,您應該在聲明其他方法/函數之後執行一個函數。