자바 문법

자바 메소드에서 배열 리턴

Nickman 2024. 4. 8. 12:16

메소드에서 어떤 배열이든지 리턴하면, 배열 공간 전체가 아니라 배열에 대한 레퍼런스만 리턴된다.

int[] makeArray() { //리턴타입과 메소드 이름
	int temp[] =new int[4];
    return temp;
 }

배열에 대한 래퍼런스만 리턴한다는 게 뭔소린가 싶다.  배열의 크기가 아니라 래퍼런스만 리턴한다는 뜻인데

일단 위의 makeArray() 메소드로부터 배열을 리턴받는 코드를 보자.

int [] arr; //makeArray()의 리턴 타입과 동일한 타입 선언
arr=makeArray(); //makeArray()메소드가 리턴하는 배열 받음

즉 int [ ] arr 배열 선언 후 new int[4] 라는 방식으로 배열을 생성한다는 뜻이다.

 

붕어빵틀 - 붕어빵 같은 경우인 것 같다.

연습해보자

public class ReturnArray{
	static int[] makeArray() { //정수형 배열을 리턴하는 메소드
    	int temp[] =new int[4]; //배열 생성
        for(int i=0; i<temp.length; i++){
        	temp[i]=i; //배열의 원소를 0,1,2,3으로 초기화
        }
        return temp; //배열 리턴
}

public static void main (String[] args){
	int arr[]; //배열에 대한 레퍼런스 변수 선언
    arr=makeArray[]; //메소드로부터 배열 전달 받음
    for(int i=0; i<arr.length;i++){
    	System.out.print(arr[i]+" "); //배열 모든 원소 출력
    }
}

배열로 붕어빵찍기 연습 인 것 같다. 배열은 코테 연습을 많이 해 보아야 익숙해질 것 같다.