🏎️💨 삡삡 안녕하세요 이서입니다😇 이번 포스팅에서는 자바 가변 인자에 대해서 알아보고자 해요. RABOJA🥸
Java에서 가변 인자(variable arguments)는 메서드의 매개변수로 변수의 수가 가변적인 경우에 사용해요. 가변 인자를 사용하면 동일한 메서드를 다양한 개수의 인자로 호출할 수 있으며, 가독성과 코드 유지보수를 향상시킬 수 있어요. Java 5부터 이 기능이 도입되었으며, 가변 인자는 ...
(세 개의 점)으로 표시해요.
public class VariableArgumentsExample {
// 가변 인자를 사용한 메서드
public static int sum(int... numbers) {
int total = 0;
for (int num : numbers) {
total += num;
}
return total;
}
public static void main(String[] args) {
// 다양한 개수의 인자로 메서드 호출
int sum1 = sum(1, 2, 3); // 6
int sum2 = sum(10, 20, 30, 40); // 100
System.out.println("sum1: " + sum1);
System.out.println("sum2: " + sum2);
}
}
위의 코드에서 sum
메서드는 가변 인자를 사용하여 다양한 개수의 정수를 더할 수 있어요. sum 메서드를 호출할 때 인자의 개수가 가변적이므로, 1개의 인자로 호출하든 4개의 인자로 호출하든 모두 동작해요.
가변 인자의 타입은 배열이에요. 따라서 int…
로 가변 인자 타입을 사용했다면, 해당 파라미터의 타입은 메서드 내에서 int[]
이 돼요.
public void test(int... ints) {
System.out.println(ints instanceof int[]); // ture
}
우리는 보통 가변 인자를 사용하면 쉼표를 통해 여러 인자를 작성하는 방법만 알고 있는 경우가 많아요. 하지만 가변 인자를 넘겨줄 때 사용 방법이 한 가지 더 있다는 점 아시나요?
가변 인자는 메서드 내부에서 배열로 처리한다는 것을 기억하시나요? 따라서 가변인자는 쉼표(,)를 통해 여러 인자를 작성할 수 있는 것 뿐만 아니라, 단 하나의 배열 인자를 받을 수도 있어요. 가변 인자에 배열을 넘기게 되면, 쉼표를 통해 여러 인자를 전달할 수는 없어요.
int[] ints = {1, 2, 3};
int sum3 = sum(ints); // 배열을 받을 수 있어요.
int sum4 = sum(new int[]{1, 2, 3});
// 아래의 코드는 컴파일 에러가 발생해요.
int sumError = sum(ints, 1, 2, 3); // Compile Error!!
가변 인자를 사용하면 메서드 호출 시 편의성을 높일 수 있으며, 다양한 개수의 인자를 처리하는 데 유용해요😆