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. 마무리
배열 메서드를 통해 값의 정렬을 이해할 수 있었다. 배열의 주소가 넘겨진다는 의미가 개발실무에서 어떻게 쓰이는 지 좀 더 알아봐야겠다.
'언어 기초 > JAVA' 카테고리의 다른 글
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 오버로딩 (0) | 2024.01.21 |
---|---|
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 클래스 메서드와 인스턴스 메서드 (0) | 2024.01.18 |
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 매개변수 (0) | 2024.01.17 |
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 메서드 (0) | 2024.01.17 |
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 클래스변수와 인스턴스변수 (1) | 2024.01.16 |