개발자 미니민의 개발스터디

[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

활동하기