가변 길이 배열 입력매개변수 메서드 (Java)


http://www.yes24.com/Product/Goods/103389317

 

Do it! 자바 완전 정복 - YES24

이 책은 ‘이제 막 프로그래밍에 입문한 사람’에게 꼭 필요한 기본기부터 ‘찐개발자’라면 꼭 알아야 할 내용까지 국내 집필서 중 가장 많은 도해와 그림을 이용해 설명한다. 특히 프로그래

www.yes24.com

Do it! 자바 완전 정복 책을 공부하며 요약・정리한 내용입니다.


 

메서드를 생성할때 입력 받는 매개변수의 개수를 모르는 경우에는

각각의 입력 개수에 따른 메소드를 모두 오버로딩해서 생성하는 방식이 아닌

가변 길이 배열 입력매개변수를 활용한 방식을 사용해야 한다.

 

쉽게 말하면 입력 받은 다양한 언어의 인사말을 출력하는 메소드를 만든다고 가정해보자.

그러면 몇개의 언어의 인사말을 입력받는지 예상하기 어렵다.

그렇다고 1개 입력받을때, 2개 입력받을때 ...

이렇게 각각의 개수만큼의 메소드를 오버로딩해 생성할 수도 없다.

이때 가변 길이 배열 입력변수를 활용하면 되는 것이다.

 

리턴 타입 메서드명 (자료형... 참조 변수명) {
    ...
}

 

e.g.

import java.util.Arrays;

public class FlexibleSizeArrayArgument {
    public static void main(String[] args) {
        method1("Hi", "안녕하세요!");
        method1("안녕!");
        method1("hi~", "안녕~", "하이~");
    }

    public static void method1(String... values) {
        System.out.println("배열의 길이 : " + values.length);

        // 배열 출력 방법 1
        for (int i=0; i<values.length; i++) {
            System.out.print(values[i] + " ");
        }
        System.out.println();

        // 배열 출력 방법 2
        for (String k: values) {
            System.out.print(k + " ");
        }
        System.out.println();

        // 배열 출력 방법 3
        System.out.println(Arrays.toString(values));
        System.out.println();
    }
}
//--==>>
/*
배열의 길이 : 2
Hi 안녕하세요! 
Hi 안녕하세요! 
[Hi, 안녕하세요!]

배열의 길이 : 1
안녕! 
안녕! 
[안녕!]

배열의 길이 : 3
hi~ 안녕~ 하이~ 
hi~ 안녕~ 하이~ 
[hi~, 안녕~, 하이~]
*/