如何调用一个不返回任何内容的方法?

时间:2015-11-22 23:25:50

标签: java

我试图调用此方法从用户输入进入坐标点。

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();

我希望将所有案例从switch语句转换为这种单独的方法,但我甚至无法让其中一种方法起作用。我错过了什么?

2 个答案:

答案 0 :(得分:4)

Java中有一种声明方法的结构。来自documentation

  

...方法声明有六个组件,按顺序:

     
      
  1. 修改器 - 例如公共,私人和其他您将了解的内容   后面。
  2.   
  3. 返回类型 - 方法返回的值的数据类型,   如果方法没有返回值,则为void。
  4.   
  5. 方法名称 - 字段名称的规则适用于方法名称   好吧,但会议有点不同。
  6.   
  7. 括号中的参数列表 - 以逗号分隔的输入列表   参数,以其数据类型开头,括在括号中,   ()。如果没有参数,则必须使用空括号。
  8.   
  9. 一个例外列表 - 稍后讨论。
  10.   
  11. 括在括号之间的方法体 - 方法的代码,   包括声明局部变量,请到这里。
  12.   

因此,如果您需要声明没有任何返回类型的方法,则需要在第二个位置编写void

在您的代码中

public static Result Case1(){

您需要返回返回类型Result。如果不想返回它 - 声明这样的方法:

public static void Case1(){

答案 1 :(得分:1)

声明不应返回任何内容的方法时,必须使用 void 作为返回类型。 在您的情况下,返回类型是 Result ,因此在添加返回Result对象的return语句之前,它不会编译。 有关定义方法的更多信息:https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html