가변형 인자 = 비정형 인자(Variable Arguments, VARARGS)
- 메서드 파라미터를 하나의 인자만 사용하여 다양하게 전달받는 기능
- 동일한 타입의 파라미터를 0개~무한대로 전달받아 배열로 관리 -> 전달받는 인자(데이터)의 개수에 따라 자동으로 배열 생성됨
- 메서드 파라미터(매개변수) 선언 시 데이터 타입 뒤에 ... 기호를 표기
ex) public void add(int...nums){}
- 가변 인자를 사용한 메서드 대표적인 예: printf() 메서드 = System.out.println(String str, Object... objs)
- 다른 파라미터와 가변 인자를 조합 가능
- 주의! 가변 인자는 마지막 파라미터로 단 한 번만 지정 가능
TEST
/*
* 클래스명 : VariableArgumentsTest
* 정수를 0개 ~ 무한대로 전달받아 출력하는 print() 메서드 오버로딩
* 단, 정수를 0개 전달할 경우 "전달받은 정수 없음!" 출력하고
* 1개 이상을 전달할 경우 전달받은 정수를 출력
*/
class VariableArgumentsTest {
public void print(int...nums) {
if(nums.length == 0) { // 전달받은 배열 크기가 0개일 경우
System.out.println("전달받은 정수 없음!");
} else {
for(int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + " ");
}
System.out.println();
}
}
}
package variable_arguments;
public class Test {
public static void main(String[] args) {
// VariableArgumentsTest 인스턴스(vat) 생성
VariableArgumentsTest vat = new VariableArgumentsTest();
vat.print(10, 20);
vat.print(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
vat.print();
}
}
'⛏️ > JAVA' 카테고리의 다른 글
[JAVA] 15. 패키지 (0) | 2023.09.11 |
---|---|
[JAVA] 14. this (1) | 2023.09.11 |
[JAVA] 12. 배열 (0) | 2023.09.05 |
[JAVA] 11. 생성자(Constructor) (0) | 2023.08.30 |
[JAVA] 10. 오버로딩 (0) | 2023.08.29 |