1. 가변인자란?
메서드에 동적으로 개수가 변하는 인자들을 전달하는 방법
메서드를 호출할 때 전달하는 인자의 개수를 유연하게 처리 가능
java5부터 추가된 기능
<주의>
가변인자는 매개변수 리스트의 마지막에만 위치해야함
가변인자 뒤에 다른 매개변수를 추가하면 어디까지가 가변인자인지 확인할 수 없기 때문임
가변인자는 배열로 저장되며, 한 가변인자는 같은 자료형의 데이터만 받을 수 있다.
2. 예제
sum 함수를 선언해보자.
가변인자를 사용하지 못하는 경우, 아래와 같이 인자 수에 따라 함수를 오버로딩해야한다.
public class Ex10 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int d = 40;
// 두 정수의 합을 구해서 반환하는
// 1. sum() 함수 선언
// 2. sum() 함수 호출
int result = sum(a,b);
System.out.printf(result);
int result1 = sum(a,b,c,d);
System.out.printf(result);
} //main
public static int sum(int a, int b) {
return a+b;
} //sum
public static int sum(int a, int b, int c) {
return a+b+c;
} //sum
public static int sum(int a, int b, int c, int d) {
return a+b+c+d;
} //sum
} //class
가변인자를 사용할 경우, 아래와 같이 간단하게 사용이 가능하다.
public class Ex10_02 {
public static void main(String[] args) {
int result = 0;
result = sum(1,2);
System.out.println(result); //3
result = sum(1,2,3,4);
System.out.println(result); //10
int [] m = {100,200,300,400};
result = sum(m);
System.out.println(result); //1000
} //main
public static int sum( int... n ) { // int... n : 가변인자
int result = 0;
for (int i = 0; i < n.length; i++) {
result += n[i];
} //for
return result; // return 수식, 변수, 리터럴 등 가능
}
} //class
'Back-End > Java' 카테고리의 다른 글
| [ JAVA ] 클래스간의 관계 1) has-a, DI(Dependency Injection) (0) | 2023.08.02 |
|---|---|
| [ JAVA ] 메서드(함수) (0) | 2023.07.23 |
| [ JAVA ] 정규표현식 - (예) 주민등록번호, 우편번호, 국어점수 (0) | 2023.07.23 |
| [ JAVA ] char과 String의 대소문자 변경 (0) | 2023.07.23 |
| [ JAVA ] 이름 붙은 반복문 (0) | 2023.07.23 |