가변 인자란?
- 메서드 파라미터 갯수가 정해져 있지 않을 때 다양한 갯수의 파라미터를 모두 전달받을 수 있는 인자다.
- 메서드 정의 시 매개변수 데이터타입과 변수명 사이에 ... <--- 기호를 붙여서 표기한다.
- 전달되는 모든 데이터는 해당 변수명으로된 "배열" 관리 되며 0개 이상의 파라미터를 전달할 수 있다.
<기본 문법>
[제한자] 리턴타입 메서드명(데이터타입... 변수명) { }
✍ 클래스 생성 후, 배열을 전달받는 메서드 만들기
class ArrayArguments{ // 클래스 생성
public void print(int[] arr) { // 배열을 전달받는 print메서드 정의
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public void print(String str, int...nums) { // 문자열과 가변인자를 전달받는 메서드 정의
}
}
✍ 클래스 생성 후 가변인자를 전달받는 메서드 만들기
class VariableArguments { // 가변인자
public void print(int...arr) { // 가변인자를 전달받는 메서드
System.out.println("print(int...arr) 호출됨!");
for(int i=0; i<arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
✍ 메인 메서드에서 호출하기
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5}; // 배열 생성
ArrayArguments aa = new ArrayArguments(); // ArrayArguments 객체 생성
aa.print(arr); // 배열 arr 전달 후, print 메서드 호출
VariableArguments va = new VariableArguments(); // VariableArguments 객체 생성
va.print(1, 2, 3, 4); // print 메서드 호출
va.print(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // print 메서드 호출
}
--> VaruableArguments의 print 메서드으 경우 가변인자를 사용하였기 때문에 원하는 길이의 배열을 출력할 수 있다.
💻
--> 가변인자 호출을 확인하기 위해 문자열 출력을 추가하였다.
'개발 > Java' 카테고리의 다른 글
[Java] 배열을 이용하여 메서드 출력하기 (0) | 2023.01.23 |
---|---|
[Java] Getter Setter 메서드 정의 연습 (0) | 2023.01.23 |
[Java] 메서드 오버로딩 (0) | 2023.01.23 |
[Java] 객체 지향/ Getter & Setter 메서드 (0) | 2023.01.21 |
[Java] 생성자 오버로딩 연습문제 (0) | 2023.01.17 |