add()메소드
P.154
"매개 변수로 int[]배열이 선언된 add() 메소드가 있을 경우, 값 목록으로 배열을 생성함과 동시에 add() 메소드의 매개값으로 사용하고자 할 때는 반드시 new연산자를 사용한다"
add()메소드를 호출하면서 int[]배열을 매개변수로 받기 위해서는 new연산자를 사용해야한다. 메소드를 호출하여 관련 연산이 시작될 때, 그 안에서 가장 먼저 배열이 새롭게 생성되어야 하기 때문이다.
아래 예제를 통해 알아본다. add()메소드를 통해 리턴된 값을 sum1에 저장하려 한다. 이때의 매개 변수는 값을 {83, 90, 87}로 가지는 int[]배열 자체이다. 방법은 두 가지다.
하나는 {83,90,87}이란 값을 가진 배열 scores를 미리 선언한 뒤 add()메소드의 매개변수로 "scores"를 넣어준다.
다른 하나는 {83, 90, 87}이란 값을 가진 임의의 배열을 생성하기 위한 매개변수 "new int[] {83, 90, 87}"를 add()메소드의 매개변수로 넣어주는 것이다. 연산이 실행된 후 sum이 return값에 저장되면, 이 값은 sum1에 저장된다. 이후 "총합 : sum1" 출력문이 실행된다.
cf. 여기서 메소드가 호출되고 실행될 때 매개변수의 이름(scores)은 임의의 이름이다. 리턴값이 반환되고 해당 블럭이 끝나는 순간 의미가 없다.
메소드 호출시 유의할 것은 1.매개변수 타입의 일치 여부(매개변수가 여럿이라면 타입-위치의 일치 여부) 2.리턴값 뿐이다.
예제 (p.154) - 값의 리스트로 배열 생성
package BookExampleHomework;
public class ArrayCreateByValueListExample2 {
public static void main(String[] args) {
//혼란을 줄이기 위해 코드를 일부 생략함(add메소드와 배열의 결합에만 집중한다.)
//int[] scores = {83, 90, 87}; 1.미리 값을 가진 배열을 생성한 뒤
//int sum1 = add(scores); 매개변수에 배열명 그자체를 넣는다.
int sum1 = add(new int[] {83, 90, 87}); //2.배열의 생성과 값목록 입력을 동시에 하는 매개변수를 입력한다.
System.out.println("총합 : "+ sum1);
System.out.println();
}
private static int add(int[] scores) { //변수명 scores는 임의의 이름으로, 어떤 이름이 되어도 상관없음
int sum = 0;
for(int i=0; i<3; i++) {
sum += scores[i];
}
return sum;
}
}
'Java > BookExample' 카테고리의 다른 글
열거 객체의 메소드 (0) | 2021.03.03 |
---|---|
열거 타입과 열거 상수 (0) | 2021.03.03 |
배열복사 (0) | 2021.03.02 |
배열 속의 배열 (0) | 2021.02.28 |
커맨드 라인 입력 (0) | 2021.02.26 |