java - 함수 - 자바 클래스 메소드
Java의 main 메소드가 반환 할 수 있습니까? (4)
나는 최근에 인터뷰를 통해 코어 자바에서 두 가지 질문을합니다.
질문 1.
우리는 다음을 사용하여 자바 클래스를 작성할 수 있습니까?
public static int main(String[] args){ System.out.println("Hello");
나는 대답했다 : 아니다. 컴파일러는 main
의 리턴 타입이 int
일 것으로 기대하고 있기 때문에 그것을 컴파일하지 않을 것이다.
질문 2 : 나는 대답 할 수 없었던 다음 질문.
Java
main
메소드가 어떤 것을 리턴 할 수 있도록 프로그램을 작성하십시오.즉, 어떻게
public static void main([] args)
을 반환 할 수 있습니까?
어떤 몸이라도 나를 도와 줄 수 있습니까?
Q 1. java 클래스를 다음과 같이 작성할 수 있습니까? public static int main (String [] args) {
예, 할 수는 있지만 Java 클래스는 실행할 수 없습니다.
예제 수업 :
class MainTest {
public static int main(String[] args) {
return 1;
}
}
실행하려고 할 때 오류 메시지가 나타납니다.
Error: Main method must return a value of type void in class MainTest, please
define the main method as:
public static void main(String[] args)
질문 2 : 다음 질문에 대답 할 수 없습니다. 그는 당신의 java main 메소드가 어떤 것을 리턴 할 수 있도록 프로그램을 작성하도록 요청했다.
System#exit(int) 를 사용하여 운영 체제에서 해석 할 수있는 특정 종료 코드로 프로그램을 종료 할 수 있습니다.
Java main 함수에서 값을 반환 할 수 없습니다. 그러나 프로그램은 상태 코드를 반환 할 수 있습니다.
Java System.exit(45)
에서 int 상태로 종료하려면 다음을 시도하십시오.
네, main 메소드를 void가 아닌 리턴 타입으로 작성할 수 있습니다. 이것은 단순히 우리가 main 메소드를 오버로드 할 수 있음을 의미합니다. 몇 가지 예는 다음과 같습니다.
-
public static void main(String ... x){ }
-
public static int main(String []args){ }
-
public static void main(string array[]){ }
그러나 컴파일러가 알 수있는 것은 여기에 유의하십시오.
public static void main(String []args){ }
위의 메서드가 없으면 컴파일되지 않습니다.
예 void 형식을 리턴 할 수 있습니다. 그러나 JVM으로 값이 갈 것이고 return () 후에 main ()을 호출하는 JVM으로 리턴 될 것이기 때문에 더 이상의 코드는 실행되지 않을 것입니다.