-
Java | Ellipsis 가변인수JAVA/JAVA 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[] = {"홍길동", "이순신", "유성룡"} ... ===== 결과 ===== 홍길동, 홍길동, 이순신, 홍길동, 이순신, 유성룡, 홍길동, 이순신, 유성룡, 강감찬, 홍길동, 이순신, 유성룡, 강감찬, 이도, */ } }
인자들을 수에 상관없이 메소드로 전달하는 (...)매개변수에 대해 알아보았습니다.
인자들의 개수에는 제한이 없지만, 자료형은 반드시 같아야한다는 점을 기억하면 좋을 것 같습니다.
'JAVA > JAVA' 카테고리의 다른 글
Java | Array of Objects 객체 배열 (0) 2020.01.29 Java | 다차원 배열_이차원 배열 (0) 2020.01.29 Java | String Method & API 문서 참조 방법 (0) 2020.01.29 Java | Scanner (0) 2020.01.28 Java | Array 배열 활용, 확장 for문 (0) 2020.01.28