ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.