package kr.or.ddit.basic;
public class ArgsTest {
public static void main(String[] args) {
ArgsTest test = new ArgsTest();
int[] nums = {100, 200, 300};
int[] nums2 = new int[] {100, 200, 300} ; //배열의 종류 2가지
System.out.println(test.sumData(nums)); //nums 는 인수
System.out.println(test.sumData(new int[] {1, 2, 3 , 4 , 5}));
System.out.println("----------------------------------------");
System.out.println(test.sumArgs(100, 200, 300));
System.out.println(test.sumArgs(1,2,3,4,5,6,7));
System.out.println(test.sumArgs2("이순신", 80, 20, 90, 100, 29, 20));
}
//--> 보완
/*가변형 인수 => 메서드의 매개변수에 주어지는 인수의 개수가 실행될 때마다 다를 때 사용한다.
* - 가변형 인수는 메서드 내부에서는 배열로 처리한다.
* - 가변형 인수는 한가지 자료형만 사용할 수 있다.
*
* 가변형 인수를 사용할 떄 주의할 점 : 가변형 인수와 일반 인수를 같이 사용할 경우에는 가변형 인수를 뒤쪽에 배치한다.
*
*
*
*
*
*
*/
/*
int k = 0 ;
test.test(k);
//or
test.test(0);
}
public void test(int a ) {
}
*/
//매개변수들의 합을 계산해서 반환하는 메서드 ==> 배열을 이용한 메서드
public int sumData(int[] data) {
int sum = 0 ;
for( int i = 0 ; i < data.length ; i++) {
sum += data[i];
}
return sum ;
}
//매개변수들의 합을 계산해서 반환하는 메서드 ==> 가변형인수를 이용한 메서드
public int sumArgs(int...data) { // int 형 을 가변형으로 만드는데 그것을 data라는 변수에 저장해 놓겠다.
//이 메서드 안에서 변수 'int...data'는 'int[] data' 와 같다. 즉 배열과 같다.
int sum = 0 ;
for (int i = 0 ; i < data.length ; i++) {
sum += data[i];
}
return sum ;
}
//주의할점 예시 : 가변형 인수와 일반 인수를 같이 사용할 경우에는 가변형 인수를 뒤쪽에 배치한다.
public String sumArgs2(String name, int...data /* , float...data2 가변형 변수는 여러개는 사용 불가*/ ) {
// (int...data , String name) 이렇게는 못쓴다. 예시 ( int...data, int name ) 으로 했을때 컴퓨터가 data에 몇개를 넣고 나머지를 name 에다 넣을지 모름
// ( int name, int k , int j , int...data) 처럼 여러개 쓸 수 있으나 가변형인수는 늘 맨 나중에 쓴다.
int sum = 0 ;
for(int i = 0 ; i < data.length; i++) {
sum += data[i];
}
return name + "씨의 합계 : " + sum;
}
}
댓글
댓글 쓰기