메인 메소드를 볼 때마다 인자값으로 되어있는
String[] args
왜 이렇게 쓰는지 궁금했었는데, 과방에 있는 책을 흝어보다가 그 해답을 찾았다.
그 이유는 바로
메소드를 선언할 때 매개 변수의 개수를 알 수 없는 경우
이기 때문이었다.
예시)
int sum1(int[] values);
int[] values = {1, 2, 3};
int result = sum1(values);
하지만
매개 변수를 배열 타입으로 선언하면, 메소드를 호출하기 전에 배열을 생성해야하는 불편한 점이 있다.
그래서 배열을 생성하지 않고 값의 리스트만 넘겨주는 방법도 있다.
이 때는 매개 변수를 '...' 을 사용해서 선언하게 되면,
메소드 호출 시 넘겨준 값의 수에 따라 자동으로 배열이 생성되고 매개값으로 사용하게 된다.
예시)
int sum2(int ... values){ }
int result = sum2(1, 2, 3, 4, 5);
int result2 = sum2(1, 2, 3);
int[] values = {1, 2, 3};
int result3 = sum2(values); //...로 선언된 매개 변수는 배열타입이므로, 배열을 직접 매개값으로 사용해도 ㄱㅊ
'공부 > JAVA' 카테고리의 다른 글
[JAVA] nextInt() in Scanner (0) | 2017.04.13 |
---|---|
[JAVA]정적(static) 메소드와 블록 선언 시 주의점 (0) | 2017.03.16 |
[JAVA]열거형 enum (0) | 2017.03.13 |
[JAVA]String 클래스와 메소드, 레퍼런스 개념 (0) | 2017.03.13 |