[JAVA] 자바 - 비정형 인자(Varargs, 가변인수)
by mini_min
[JAVA]
비정형 인자
✔️ 비정형 인자란?
같은 타입의 매개변수를 가변적으로 선언할 때 사용한다. 어떻게 사용하느냐, 간단하다.
매개변수 타입 다음에 생략부호 [...] 점 3개를 붙여 선언한다.
-printf () 메소드 처럼 매개변수 갯수에 제한이 없는 경우가 비정형 인자의 예시!
다시 말해, 비정형 인자는 '배열' 로 간주된다!!!
⭐ 메소드는 단! 한 개의 비정형 인자를 가질 수 있다.
public int add(int ... a) { } public int add(int ... a, int ...b) { }
◾ 두번째는 잘못된 선언에 해당된다.
✔️ 비정형 인자 = 배열
public int add(int ...a) = public int add(int[] a)
◾ 컴파일러가 비정형 인자가 들어간 코드를 읽을 때, 배열과 동일하게 번역한다고 이해하면 된다.
✔️ 매개변수 갯수가 다른 2개의 배열 처리
public static void main(String[] args) { Demo3 ob = new Demo3(); int s1 = ob.sum(1,3,5,7,9); int s2 = ob.sum(1,2,3,4,5,6,7,8,9,10); //타입은 동일 System.out.println(s1); System.out.println(s2); } } class Demo3 { //배열 처리 or 향상된 for 문장 처리 해도 괜찮음 public int sum(int ... args) { //부정인수 사용 (받으려는 인수 갯수 다 다를 때) int s = 0; //부정인수는 내부적으로 배열로 처리 for(int n : args) { s += n; } return s; } }
◾ s1과 s2의 배열은 크기가 다르다. 두 배열 크기가 다르니 부정인수(args) 를 사용하여 비정형 인자가 포함된 메소드를 작성한다.
또한, 부정인수는 내부적으로 배열로 처리한다.= 향상된 for 문을 이용하면 효율적이다.
for(int n : args) { s += n;}
블로그의 정보
개발자 미니민의 개발로그
mini_min