본문 바로가기

Java/BookExample

add메소드와 배열생성

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