본문 바로가기

언어 기초/JAVA

[자바의정석 | Chapter 06 객체지향 프로그래밍1] 메서드로 배열 다루기

1. 학습목표

참조변수를 통해 배열을 다룰 수 있다.

2.필요 개념 문장정리

  • 배열도 객체와 같이 참조변수를 통해 데이터가 저장된 공간에 접근한다.

 3. 코드작성

class ReferenceParamEx {
	public static void main(String[] args) {
    	int[] arr = new int[] 3, 2, 1, 6, 5, 4};
        
        printArr(arr); // 배열의 모든 요소를 출력
        sortArr(arr); // 배열을 정렬
        printArr(arr); // 정렬후 결과를 출력
        System.out.println("sum=" + sumArr(arr)); // 배열의 총합을 출력
    }
	static void printArr(int[] arr) { // 배열의 모든 요소를 출력
    	System.outprint("[");
        
        for(int i : arr) // 향상된 for문
        	System.out.print(i + ", ");
        
        System.out.println("]");
	}
    static int sumArr(int[] arr) { // 배열의 모든 요소의 합을 반환
    	int sum = 0;
        
        for(int i = 0; i < arr.length; i++)
        	sum += arr[i];
        return sum;
     }
     static void sortArr(int[] arr) { // 배열을 오름차순으로 정렬
     	for(int i = 0; i < arr.length-1; i++)
        	for(int j = 0; j < arr.length-1-i; j++)
            if(arr[j] > arr[j+1]) {
            	int tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
            }
      } // sortArr(int[] arr)  
}
실행결과
[3, 2, 1, 6, 5, 4]
[1, 2, 3, 4, 5, 6]
sum=21

class ReturnTest {
	public static void main(String[] args) {
    	ReturnTest r = new ReturnTest();
        
        int result = r.add(3,5);
        System.out.println(result);
        
        int[] result2 = {0}; // 배열을 생성하고 result2[0]의 값을 0으로 초기화
        r.add(3, 5, result2); // 배열을 add메서드의 매개변수로 전달
        System.out.println(result2[0];
    }
    int add(int a, int b) {
    	return a + b;
    }
    void add(int a, int b, int[] result) {
    	resul[0] = a + b; // 매개변수로 넘겨받은 배열에 연산결과를 저장
    }
}

실행결과
8
8

 

  • 반환 값이 있는 메서드를 반환값이 없는 메서드로 바꾸는 방법을 보여준다
  • 반환타입이 참조형이라는 것은 메서드가 객체의 주소를 반환한다는 것을 의미한다.

4. 마무리

배열 메서드를 통해 값의 정렬을 이해할 수 있었다. 배열의 주소가 넘겨진다는 의미가 개발실무에서 어떻게 쓰이는 지 좀 더 알아봐야겠다.