2014-11-17 3 views
-1

최근에 자바의 약간을 배우기로 결심했고, 나는 첫 번째 장애물에 곤란을 겪었습니다. 여기 내 기본 코드가 있습니다 :불법적 인 표현 (메소드) 시작

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 

내가 검색과 검색 및 모든 일반적인 응답이 오타 및 잘못된 괄호하지만 지금까지 내가 그렇지 않은 볼 수 있습니다했습니다 그러나, 컴파일시에 나는이 오류가 발생합니다.

차이점이 있는지는 모르겠지만 vim 편집기를 사용하여 Mac을 사용 중이며 터미널에서 컴파일 중입니다.

모든 조언을 주시면 감사하겠습니다.

+1

자바 중첩 방법을 지원하지 않습니다. 너 뭐하려고? – August

+4

이 질문은 장래에 도움이되지 않는 근본적인 구문 기능에 관한 주제이기 때문에 논점이없는 것으로 보입니다. 구문 문제는 본질적으로 스택 오버플로에 관한 것입니다. –

+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) { 

    } 
} 
+0

컴파일되지 않습니다. – Dici

1

다른 메소드 내에 메소드를 선언 할 수 없습니다. main 방법을 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; 
     //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; 
    } 
} 
+0

그리고 리턴 타입을 가진 메소드는 무언가를 리턴해야합니다. – Dici

관련 문제