2013-04-16 5 views
2

Почему я получаю «недопустимое объявление метода, возвращаемый тип обязательно» на check (values);?Неверный запрос декларации метода

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).

Возможно, что вы имели в виду, это сделать проверку внутри конструктора класса или в основном методе.

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

В некоторых случаях вы должны выполнить функцию после объявления других методов/функций.

Смежные вопросы