자바에는 오버로딩이라는 기능이 있다.
오버로딩의 조건
1. 메소드 이름이 같아야하고
2. 매개변수의 개수 또는 타입이 달라야 한다.
만약 매개변수의 개수가 사용자의 쓰임에 따라 달라진다면 어떻게 할까.
각각의 경우의 매개변수들을 하나하나 오버로딩 해주어야 할 것인가? 라는 의문이 생긴다
이러한 문제를 해결하기 위해 자바에서는 가변인자
기능을 제공한다.
Jdk 1.5부터 매개변수의 개수를 동적으로 지정해 줄 수 있게 되었는데 이 기능을 가변인자(variable argument) 라고 한다.
데이터타입...변수명
ex) 가변인자 예시
public class test {
public static void main(String[] args) {
test t = new test();
t.variable();
t.variable("A");
t.variable("A","B");
t.variable("A","B","C");
t.variable("A","B","C","D");
}
public void variable(String... s) {
System.out.println(Arrays.toString(s));
}
}
////////////Console////////////
[]
[A]
[A, B]
[A, B, C]
[A, B, C, D]
전달인자를 0개부터 n개까지 넣을수 있다.
가변인자는 컴파일시 배열로 처리된다.