본문 바로가기

반응형

이번 글에서는 메서드에서 가변 인자(Variable Arguments)를 사용하여
매개값의 개수에 상관없이 데이터를 처리하는 방법을 학습합니다.
가변 인자를 사용하면 메서드 호출 시 매번 배열을 따로 만들지 않고,
편리하게 여러 값을 넘길 수 있습니다.


📦 클래스 코드 (Computer.java)

package ch06.sec08.exam01;

public class Computer {
	int sum(int... values) {
		int sum = 0;

		for (int i : values)
			sum += i;

		return sum;
	}
}

📌 실행 코드 (ComputerExample.java)

package ch06.sec08.exam01;

public class ComputerExample {
	public static void main(String[] args) {
		Computer com = new Computer();

		int re1 = com.sum(1, 2, 3);
		System.out.println("result1 : " + re1);

		int re2 = com.sum(1, 2, 3, 4, 5);
		System.out.println("result2 : " + re2);

		int values[] = { 1, 2, 3, 4, 5 };
		int re3 = com.sum(values);
		System.out.println("result3 : " + re3);

		int re4 = com.sum(new int[] { 1, 2, 3, 4, 5 });
		System.out.println("result4 : " + re4);
	}
}

💬 코드 설명

  • int sum(int... values)
    → 가변 인자를 사용하여 0개 이상의 int 값을 받을 수 있음 → 내부적으로 values는 배열처럼 동작
  • for (int i : values)
    → 향상된 for문을 사용해 전달된 모든 값을 합산
  • 다양한 방식으로 호출:
    • 단일 값 나열
    • 배열 자체를 전달
    • new int[] { ... }로 전달

💻 실행 결과

result1 : 6
result2 : 15
result3 : 15
result4 : 15

📌 간단 정리

호출 방식 설명
com.sum(1, 2, 3) 직접 값 나열
com.sum(1, 2, 3, 4, 5) 여러 값 직접 나열
com.sum(values) 배열 전달
com.sum(new int[]{1,2,3,4,5}) 배열 생성 후 전달

💡 포인트 정리

  • 타입... 변수명 형태로 가변 인자를 선언할 수 있음
  • 가변 인자는 0개 이상의 값을 받을 수 있음
  • 내부적으로는 배열로 처리되어 for문이나 인덱스 접근 가능
  • 가변 인자는 메서드 매개변수 목록 중 가장 마지막에만 위치해야 함
  • 메서드 호출 시 편리성을 높여주는 문법
댓글