[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;}
'Java' 카테고리의 다른 글
[JAVA] 자바 - arraycopy (배열 복사)란 무엇? (예문) (0) | 2022.07.20 |
---|---|
[JAVA] 자바 - 생성자 + 객체 생성 순서는? (0) | 2022.07.20 |
[JAVA] 자바 - 메소드 오버로딩 overloading (0) | 2022.07.19 |
[JAVA] 자바 - 재귀 호출 (0) | 2022.07.19 |
[JAVA] 자바 - call by value / call by reference (0) | 2022.07.19 |
블로그의 정보
개발자 미니민의 개발로그
mini_min