2013-10-02 3 views
0

Я создаю метод под названием swapElements(). Он принимает массив целых чисел и два целых индекса. Метод должен менять значения элементов массива с указанными индексами.Что следует использовать в качестве оператора возврата?

public class{ 
    int swapElements(int[] number, int value1, int value2){ 
     int temp = number[value1]; 
     number[value1] = number[value2]; 
     number[value2] = temp; 
    } 
} 
+4

Зачем вам нужно что-то возвращать? –

+2

как 'bout void? – duffymo

+1

@SotiriosDelimanolis Пахнет домашней работой. –

ответ

2

В коде есть четыре вещи.

  1. Вещь, о которой вы просите: используйте return number;, потому что вы хотите вернуть массив с замененными элементами.
  2. Сделайте метод возвратом int[] (например, int[] swapElements), а не int.
  3. Ваш класс не имеет имени. Вам нужно добавить имя, например public class IntArraySwapper { ....
  4. Ваш метод должен быть static. Без использования этого ключевого слова вы должны вызвать его в экземпляре, например new IntArraySwapper().swapElements(...). Поскольку этот метод не имеет ничего общего с экземплярами класса, просто сделайте его static (static int[] swapElements), чтобы его можно было назвать IntArraySwapper.swapElements(...).

Обратите внимание, что этот метод будет также изменить исходный массив, так techinically вы не необходимости вернуть ничего. Если вы хотите, вы можете просто сделать его методом void и использовать старый массив.

+2

В-четвертых, неверно то, что этот метод вообще не имеет зависимости от любого состояния объекта, и все же метод является методом экземпляра. Это должен быть статический метод. – scottb

+0

@scottb Хороший улов, отредактированный – Doorknob

3

Как вы его представили, этот метод не должен ничего возвращать и, вероятно, должен быть объявлен void. Однако, если есть конкретный контракт, который он должен выполнить, тогда вы должны вернуть то, что говорит определение интерфейса, которое оно должно вернуть.

2

Вы можете просто вернуть его в пустоту. или, может быть, логическое значение, указывающее на то, что произошло пиление, без ошибок. подобный индекс вне допустимой погрешности.

0

В таких случаях тип return не является обязательным требованием. Итак, вы должны вернуть void. Но если вы действительно хотите что-то вернуть, подумайте о возврате boolean, чтобы указать, произошел ли обмен или нет. Более точно вы можете включить код обмена в блок try catch, который возвращает True, если своп произошел без ошибок и False в противном случае.

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