2015-11-22 2 views
0

Я пытаюсь вызвать этот метод, который вводит точку координат из пользовательского ввода.Как вызвать метод, который ничего не возвращает?

public class Cases { 

public static Result Case1(){ 
    Scanner in = new Scanner(System.in); 
    System.out.println("Enter index: "); 
    int i = in.nextInt(); //validate 
    System.out.print("Enter integers x, y to replace: "); 
    int x = in.nextInt(); 
    int y = in.nextInt(); 
    A[i] = new Point(x, y); 

    if(occupancy<i) 
     occupancy=i; 
    } 
} 

но я не знаю, как заставить его работать, так как ему не требуется инструкция возврата.

Это, как я назвал его из моего основного метода:

Result r = null; 
r = Cases.Case1(); 

Я хочу, чтобы все мои случаи из переключателя заявления в этот отдельный метод, но я даже не могу получить один из них работать. Что мне не хватает?

+0

Редактировать: извините, я думаю, что вы * do * нуждаетесь в операторе возврата здесь, это может быть проблема. (Да, мой компилятор говорит «отсутствующий оператор возврата». Также A и занятость не определены.) – markspace

+1

'Cases.Case1()' возвращает объект 'Result'. Он не будет компилироваться именно так. Вы должны изменить тип возврата на 'void' и изменить способ его вызова (вам не нужно назначать его ссылочной переменной). –

ответ

5

В Java существует структура методов декларирования. От documentation

... объявление методов есть шесть компонентов, в следующем порядке:

  1. Модификаторов, такие как государственные, частные и другие вы узнаете о позже.
  2. Тип возврата - тип данных значения, возвращаемого методом, или void, если метод не возвращает значение.
  3. Имя метода - правила для имен полей применяются к именам методов как , но соглашение немного отличается.
  4. Список параметров в скобках - список параметров ввода , которым предшествуют их типы данных, заключенные в круглые скобки, (). Если параметров нет, вы должны использовать пустые круглые скобки.
  5. Список исключений, который будет рассмотрен ниже.
  6. Тело метода, заключенное между фигурными скобками - код метода, , включая объявление локальных переменных, идет здесь.

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

В коде

public static Result Case1(){ 

есть тип возвращаемого Result, что вам нужно вернуться. Если не хотите, чтобы вернуть его - объявить метод как это:

public static void Case1(){ 
1

При объявлении метода, который не должен ничего возвращать вы должны использовать недействительным в качестве возвращаемого типа. В вашем случае тип возврата Результат поэтому он не будет скомпилирован, пока вы не добавите оператор возврата, возвращающий объект Result. Дополнительная информация по методам определения: https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html

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