Java

Java 문법) 가변인자

sejin2 2023. 10. 27. 10:45

MultiArgs 가변인자

  • Java에서 메서드에 다양한 개수의 인수를 전달 가능
  • 메서드 정의에서 타입... 변수명 형식으로 가변인자 선언
  • 가변인자를 사용하면 메서드 호출 시 다양한 개수의 인수 전달이 가능
  • 메서드 내부에서 이러한 인수를 배열로 처리가 가능 !
public class MultiArgsTest {

	public static void main(String[] args) { 
		/*MultiArgsTest mt = new MultiArgsTest();
		String str = mt.concatenate("", "", "", "");*/ 
		String str = concatenate("a", "b", "c");
		System.out.println(str);
		
		String strArr[] = {"마리오", "루이지", "키노피코","톱텐"};
		System.out.println(concatenate(strArr));
		System.out.println(con2("-", "마리오", "루이지", "키노피코"));
		System.out.println(con2("/", new String[] {"1", "2", "3"}));
		System.out.println(con2(" ", strArr));
		
		// 합계 : 숫자가 몇개가 들어올지 모름
		// 메서드 호출하여 합계 출력
		int sumArr[] = {1, 2, 3, 4, 5, 6, 7};
		System.out.println(sum(sumArr));
		
	} 
	
	/*String concatenate(String i, String a, String b, String c ) {
		String result = ""; 
		result = i + a + b + c;
		return result;
	}*/
	
	// 합계를 구하는 메서드 구현
	static int sum(int...a) {  // 가변 인자 -> 여러 정수를 인수로 전달 할 수 있음 ! 이 메서드를 사용하면 메서드 호출 시 전달되는 정수의 개수에 상관없이 원하는 값을 구할 수 있음
		int result = 0;
		for(int num : a) {
			result += num;
		}
		return result;
	}
											  
	static String concatenate(String...a) {  // 배열로 받기 //하나 이상 받는다 -> 하나는 명시적으로 써주고, 나머지는 들어올지 안 들어올지 모른다.
		String result = ""; 
		for(String str : a) {
			result += str + ", ";
		}
		return result;
	}
	
	static String con2(String delim, String...b) {
		String result = "";
		for(String str : b) {
			result += str + delim;
		}
		return result;
	}
}

출력결과

'Java' 카테고리의 다른 글

Java문법) 예외처리 -1  (0) 2023.10.31
Java문법) final 키워드  (0) 2023.10.30
Java문법) 메서드 오버로딩  (0) 2023.10.26
Java문법) 생성자  (0) 2023.10.25
Java문법) 메서드 생성 및 호출  (0) 2023.10.25