지금까지 미지의 영역으로 남겨두었던 Strings[] args의 의미를 파헤쳐 볼 시간이다. 아래 예제를 보자.
package org.opentutorials.javatutorials.io;
class InputDemo{
public static void main(String[] args){
System.out.println(args.length);
}
}
아시다시피 main 메소드는 자바에서 특별한 의미를 가진 메소드다. main 메소드의 내용을 구현하면 자바 에플리케이션을 실행할 때 main 메소드가 호출되면서 프로그램이 구동하게 되는 것이다. 이 때 Strings[] args는 입력 값의 파라미터로 동작한다.
String[] args은 매개변수다. 매개변수는 메소드가 호출될 때 전달된 입력 값을 메소드 내부로 전달하는 역할을 하는 변수다. 이 변수의 데이터형은 String[]인데, String[]은 문자열을 담고 있는 배열이다. args.length는 배열의 길이를 의미한다. 이 점을 기억하고 위의 코드를 실행해보자.
javac InputDemo.java
java InputDemo 1 2 3 4 5 6;
결과는 6이다.
java InputDemo one two three;
결과는 3이다.
이것을 통해서 추론 할 수 있는 것은 자바 에플리케이션 실행 명령인 java InputDemo 뒤에 따라오는 값의 숫자 만큼 변수 args에 어떤 값이 들어있다는 점이다.
그 값을 확인해보자.
class InputForeachDemo{
public static void main(String[] args){
for(String e : args){
System.out.println(e);
}
}
}
위의 예제는 for-each 구문을 이용해서 변수 args에 담긴 값을 한줄씩 출력하고 있다.
즉 자바 에플리케이션에서는 메소드 main의 인자 String[] args를 통해서 사용자가 입력한 값을 전달하고 있다는 것을 알 수 있다.
조건문 수업에서 로그인 에플리케이션을 만든 것을 기억할 것이다. 조건문 수업으로 다시 돌아가서 예제를 음미해보자. 더 많은 것이 보이지 않는가? 아는 만큼 더 많은 것이 보이는 것이 공부의 즐거움이 아닐까?