Java

[Java] main() 메소드의 특징과 매개변수

yujinius 2024. 4. 8. 14:47

main() 메소드는 자바 응용프로그램의 실행이 시작되는 특별한 메소드이다.

위의 main() 메소드의 원형을 보며 특징을 정리해보자.

 

main() 메소드의 특징

자바 응용프로그램의 실행은 main() 메소드부터 시작한다.

main() 메소드는 public 속성이다. 

  • public 속성은 메소드가 다른 클래스에서 호출 가능함을 나타냄
  • 자바응용프로그램이 실행을 시작할 때 JVM에 의해 호출되어야 하므로 public 속성으로 선언되어야 함

main() 메소드는 static 속성이다.

  • main() 메소드는 자신을 포함하는 클래스의 객체가 생성되기 전에, 처음부터 JVM에 의해 호출되므로 static 속성으로 선언되어야 함

main() 메소드의 리턴 타입은 void이다.

  • 아무 값도 리턴하지 않기 때문에 void 타입
  • main() 메소드를 끝내기 위해 리턴하려면 단순히 return;문 사용

main() 메소드에는 문자열 배열(String [])이 매개변수로 전달된다.

  • 자바는 명령행에 입력된 인자들을 문자열 배열로 만들어 main() 메소드에 전달한다. 

 

main() 메소드의 매개변수 

앞서 말한 문자열 배열(Stirng [])에 관한 것이다.

C:> java Hello option1 option2 .. optionN
  • 여기에서 option1, option2, ..., optionN은 명령행 인자(command line argument)라고 부르며, 이들은 모두 Hello 클래스의 main() 메소드의 매개변수로 전달된다.
  • Hello 클래스의 main() 메소드가 시작되기 전, 이 인자들은 각각의 문자열로 만들어지고 문자열(String) 배열에 저장된다.
  • 그리고 문자열 배열에 대한  레퍼런스가  main()의 매개변수 args에 전달된다. 
  • 이런 방식으로 main() 메소드는 명령행 인자들을 전달받는다.

즉, C:> java Hello abc 3 5.7 로 명령행 인자를 전달했을 때 아래와 같이 사용할 수 있다.

public static void main(String [] args){
	String a = args[0]; // a는 "abc"
    String b = args[1]; // b는 "3"
    String c = args[2]; // c는 "5.7"
}