非法表达的开始(方法)

时间:2014-11-17 22:13:25

标签: java methods expression

决定最近学习一点java并且我在第一个障碍时被困住了。这是我非常基本的代码:

import java.util.Scanner;

class helloWorld{

public static void main(String[] args){
    Scanner user_input = new Scanner(System.in);

    int a = 50;
    String first_name;
    String last_name;

    public static int funcName(int a, int b) {
    }
}
}

据我所见,没有错误。但是,在编译时我收到此错误:

Dominics-MacBook-Pro:helloworld dominicsore$ javac helloworld.java
helloworld.java:12: error: illegal start of expression
public static int funcName(int a, int b) {
^
helloworld.java:12: error: illegal start of expression
public static int funcName(int a, int b) {
       ^
helloworld.java:12: error: ';' expected
public static int funcName(int a, int b) {
             ^
helloworld.java:12: error: '.class' expected
public static int funcName(int a, int b) {
                               ^
helloworld.java:12: error: ';' expected
public static int funcName(int a, int b) {
                                ^
helloworld.java:12: error: ';' expected
public static int funcName(int a, int b) {
                                       ^
6 errors

我进行了搜索和搜索,所有常见的回答都是错别字和错位的括号,但据我所知,事实并非如此。

不确定它是否有任何区别,但我在Mac上,使用vim编辑器,我正在从终端进行编译。

感谢任何建议。

2 个答案:

答案 0 :(得分:3)

funcName正在主方法中定义,它必须在它之外:

import java.util.Scanner;

class helloWorld{

    public static void main(String[] args){
        Scanner user_input = new Scanner(System.in);

        int a = 50;
        String first_name;
        String last_name;
    }
    public static int funcName(int a, int b) {

    }
}

答案 1 :(得分:1)

您无法在其他方法中声明方法。将funcName移到main方法之外:

import java.util.Scanner;

class helloWorld{

    public static void main(String[] args){
        Scanner user_input = new Scanner(System.in);
        int a = 50;
        String first_name;
        String last_name;
        //do something more here, probably to call
        //to your funcName method
    }

    public static int funcName(int a, int b) {
        //method implementation
        //since it doesn't return anything (yet), I add this line
        //just for compilation purposes
        return 0;
    }
}