메서드 오버로딩을 사용하지 않고, 인자의 개수를 다르게 하여 메서드를 호출할수 있도록 선언하는 방법
test()
메서드를 호출하려면, 매개변수 개수별로 메서드 오버로딩이 되어있어야 호출이 가능할 것이다. test(1);
test(1, 2);
test(1, 2, 3);
// 각각에 대해 아래처럼 메서드 오버로딩이 되어있어야 위의 코드처럼 호출 가능하다
void test(int a) {}
void test(int a, int b) {}
void test(int a, int b, int c) {}
메서드이름(데이터타입… 변수이름) { }
void test(int... v) {
System.out.println(v.length);
}
public class Test01 {
// 가변 길이 인자 선언
static void test(int... v) {
System.out.print(v.length + " : "); // 배열 v의 길이 출력
for (int x : v)
System.out.print(x + " "); // 배열의 원소 출력
System.out.println(); // 개행
}
public static void main(String[] args) {
// 메서드 호출
test(1);
test(1, 2);
test(1, 2, 3);
}
}
/* 실행결과 */
1 : 1
2 : 1 2
3 : 1 2 3
void test(String name, int... v)
’와 같은 형태로 함께 사용할 수 있다.package oj_java.com.ruby.java.ch05;
public class Test02 {
static void test(String name, int... v) {
System.out.print(name + " : ");
for (int x : v)
System.out.print(x + " ");
System.out.println();
}
public static void main(String[] args) {
test("오정임", 98, 85, 88);
test("김푸름", 90, 15, 28);
test("김하늘", 91, 35, 48);
}
}
// 실행결과
오정임 : 98 85 88
김푸름 : 90 15 28
김하늘 : 91 35 48
가변 길이 인자를 사용할 때는 다음 두 가지 사항을 주의하여야 한다.
void tset(String name, int... v, double sum) { } // 에러.
void tset(String name, double suma, int... v) { } // 정상. 가변 길이 인자를 받는 매개변수를 맨 마지막에 선언.
void test(String name, int... y, double... ds) { } // 에러. 가변 길이 인자 매개 변수 두 번 선언
📔 본 포스팅은 책 '처음 해보는 자바 프로그래밍(오정임 저)' 를 바탕으로 작성했습니다.