JAVA/JAVA
Java | Ellipsis 가변인수
pathas
2020. 1. 29. 17:40
Ellipsis (...) 가변인수
매개변수로 들어오는 값의 개수와 상관 없이 메소드가 기능하도록 해주는 매개변수
- (...) 매개변수로 전달되는 인자들의 자료형은 반드시 같아야 함
- (...) 가변인수는 매개변수 가장 마지막에 작성해야 함
- (...) 앞에 매개변수가 있는 경우,
인자들이 앞에 있는 매개변수부터 하나씩 순서대로 전달되고
나머지 인자들이 (...)으로 전달됨 - 가변배열 형태의 매개변수임
※ Argument 인자: 매개변수로 전달된 실질적인 값
형식
(자료형 ... 매개변수명)
사용례_확장 for문 활용
package j200129;
public class VarArgTest {
// ... 매개변수를 사용
public void print(String... names) {
// 가변배열의 형태로 매개변수를 받아오기 때문에 확장 for문 사용 가능
for (String name : names) {
System.out.print(name + ", ");
}
// 줄바꿈
System.out.println();
}
public static void main(String[] args) {
// 객체 생성
VarArgTest vat = new VarArgTest();
// 출력, 인자들의 자료형은 반드시 같아야 함
vat.print("홍길동");
vat.print("홍길동", "이순신");
vat.print("홍길동", "이순신", "유성룡");
vat.print("홍길동", "이순신", "유성룡", "강감찬");
vat.print("홍길동", "이순신", "유성룡", "강감찬", "이도");
/*
인자들이 주어지면 names 배열은 다음과 같이 동작함
String names[] = {"홍길동"}
String names[] = {"홍길동", "이순신"}
String names[] = {"홍길동", "이순신", "유성룡"}
...
===== 결과 =====
홍길동,
홍길동, 이순신,
홍길동, 이순신, 유성룡,
홍길동, 이순신, 유성룡, 강감찬,
홍길동, 이순신, 유성룡, 강감찬, 이도,
*/
}
}
인자들을 수에 상관없이 메소드로 전달하는 (...)매개변수에 대해 알아보았습니다.
인자들의 개수에는 제한이 없지만, 자료형은 반드시 같아야한다는 점을 기억하면 좋을 것 같습니다.