본문 바로가기

카테고리 없음

[Java] 명령 줄 인수 뭐야?

main 메소드에 대한 인수

  main 메소드에 대해 다시 잘 살펴보세요.

 처음에는 의미 불명 한 알파벳의 나열이라고 생각 합니다만, 조금 의미가 알게 않습니까?

 "public"와 "static"불행히도 아직 옆에두고로서 "void"은 "반환 값을 반환하지 않습니다"라는 뜻이었습니다.

 그리고 뒤에 () 중에는 "String [] args"가 들어 있네요. 이것은,이 메소드는 String []를 인수로 사용합니다라는 것입니다. String []라는 것은 String 배열 네요. args는 배열 변수 이름입니다 (이것은 단지 이름 이니까별로 "args"이 아니어도 좋은 것 같습니다).

 즉, main 메소드를 부를 때에 인수 String 배열을 전달하고 처리 할 수 ​​있구요.

 인수를 전달할해도, main 메소드 이외의 일반 메소드의 경우라면 호출 할 때 ()에 인수를 전달할 수 있지만, main 메소드는 class를 실행했을 때 마음대로라는 메소드이므로,

 이런 식으로 ()에 인수를 전달하여 호출 할 수 없습니다. (직접 main 메소드를 부르려고하면 부를 만, main 메소드에서 main 메소드를 불러 버리면 무한 루프되므로 현실적으로 무리입니다.)

 는 main 메소드에 인수를 전달하려면 도대체 어떻게해야 좋을까? 을 설명합니다.

 

명령 줄 인수

 main 메소드에 전달할 인수를 명령 줄 인수 라고합니다.

 명령 프롬프트를 시작하여 java 파일을 컴파일과 class의 실행을하고 있다고 생각 합니다만, 그 컴파일 명령 (javac) 또는 실행 명령 (java)를 박는 곳을 명령 줄 말합니다. 거기에서 인수를 전달하기 때문에 명령 줄 인수 말 것입니다.

 구체적으로 어떻게 전달하는지보기 전에 명령 줄 인수를 받아 처리하는 class를 쉽게 만들어 보자. 받을 것은 String 배열입니다. 받은 배열의 요소를 하나씩 화면에 출력 할만한 class합니다.

 

 그럼 실제로 인수를 전달하여이 class를 실행하자. 먼저 컴파일합니다. 이것은 보통입니다.

 

에서 다음 class를 실행합니다. 이 때, class 이름의 뒤를 이어 공간을 비우고 인수로 전달하려는 문자열을 입력 합니다. 공간을 사이에두고 몇 개라도 문자열을 추가 갈 수 있습니다.

 클래스 이름 뒤에 입력 한 문자열을 String 배열되고 main 메소드에 전달됩니다. 이제 enter를 눌러 실행하면

전달 된 문자열이 순차적으로 모두 출력되었습니다. 제대로 main 메소드에 건네 네요. for 문을 사용하고 있기 때문에 전달 된 배열 요소의 수만큼 출력됩니다. 꼭 여러 문자열을 전달하려고합니다.

 하나주의인데, main 메소드는 이러한 인수를 받아들이도록 정의 된 메서드인데,별로 인수 없이도 문제없이 실행되고 있지요.

 하지만, 보통 (main 메소드가 아닌) 메소드의 경우 어떤 인수를 받아들이도록 정의하면 그 메소드를 호출시에는 반드시 지정된 유형의 인수를 건네주지 않으면 안됩니다. 정의대로 인수를 전달하지 않고 그 메소드를 사용하면 컴파일 오류가 발생합니다.

 인수를받을 수 있도록 정의 된 메소드를 호출 할 때 해당 형식의 인수를 과부족없이 건네주지 않으면 안된다고 기억하세요. 만약 여러 인수를 유연하게 받아 처리하고 싶은 경우는, 그 메소드를 오버로드하는 것이 가능합니다

 

 어떻게 든 기본 중의 기본 부분은 클리어 할 수 있었다고 생각하므로, 다음은 드디어 eclipse를 사용 해보고 싶습니다.

 eclipse는 매우 고성능 통합 개발 환경입니다. 고성능 너무 오른쪽도 왼쪽도 모르는 사이에 사용해도 불필요하게 까다 롭다뿐입니다 만, 여기까지 당 입문 강좌를 클리어 할 정도의 지식이 있으면 그 혜택을 조금받을 수 있다고 생각합니다.