h-i-s-t-o-r-y

[Java] 가변인자(varargs)와 오버로딩 본문

Java

[Java] 가변인자(varargs)와 오버로딩

H' 2021. 7. 17. 22:52
package days16;

public class Ex08_02 {

	public static void main(String[] args) {
		// p.287
		// 1. 가변인자 (varargs) 와 오버로딩
		// 2. 가변인자 선언 형식
		//	타입... 변수명
		// 3. JDK1.5 가변인자 (variable arguments)
		//	?	기존에는 메서드의 매개변수 갯수가 고정되어 있었으나
		//		동적으로 지정할 수 있게 한 기능을 "가변인자"라고 한다.
		// 4. 가변인자는 항상 마지막 매개변수로 선언해야 한다.
							// Object...args 모든 타입 다 적용가능
							// 자동업캐스팅
		System.out.printf("%s %d %c %b\n", "kenik", 10, 'A', true);
		System.out.printf("TEST\n");
		
		// ㄱ. 두정수, 세정수, 네정수 합
		/*
		int result = add(10,20);
		int result = add(1,2,3);
		int result = add(1,2,3,4);
		*/
		
		
		int [] m = {1,2,3};
		int result = add(m);
		System.out.println(result);
		
		
		
		
	}//main
	
	//						가변인자
	private static int add(int ... m) {
		int result = 0;
		for (int i = 0; i < m.length; i++) {
			result +=  m[i];
		}
		return result;
	}
	
	/*
	// 오버로딩
	private static int add(int [] m) {
		int result = 0;
		for (int i = 0; i < m.length; i++) {
			result +=  m[i];
		}
		return result;
	}
	
	
	private static int add(int i, int j, int k, int l) {
		return i+j+k+l;
	}
	private static int add(int i, int j, int k) {
		return i+j+k;
	}
	private static int add(int i, int j) {
		return i+j;
	}
	*/
	
	
	
}//class
Comments