Daily coding
Java Basic : day 6 - 메소드(함수) : Function2 본문
함수(메소드) 메소드(함수) : Function2
자료형 함수면(매개변수) {
처리
리턴값
}
- 함수자료형, 매개변수에 배열값을 받을 수 있음
*/
// 배열은 참조변수
int arrNum[]= new int[1];
int num;
arrNum[0] = 11;
num = 11;
func(num, arrNum);
System.out.println("num = " + num);
System.out.println("arrNum[0] = " + arrNum[0]);
// 안에 매개변수로 배열 자체가 넘어가서 배열의 값이 바뀐것임
// 다른 기본 데이터형은 데이터 자체가 넘어가서 처리가 이루어지지만
// 참조형이나 배열은 주소값이 넘어가서(포인터) 통째로 파라미터에 들어가게됨
// 그리고 실제로 배열에 담긴 값들이 모두 다 변경됨.
// 아래는 예시
int aNumber[] = { 2,4,6,8,10};
System.out.println("변경전 배열 데이터 : " + Arrays.toString(aNumber));
arrDiv2(aNumber);
System.out.println("변경후 배열 데이터 : " + Arrays.toString(aNumber));
int a = 1;
int b = 2;
System.out.println("변경전 a = " + a +", b = "+b);
swap(a, b); // 함수 안에서 처리
System.out.println("변경후 a = " + a +", b = "+b);
// 위의 코드는 매개변수로 들어간 값이 기본 데이터이기 때문에 바뀌지 않음
int arr[] = new int[2];
arr[0] = 1;
arr[1] = 2;
System.out.println("변경전 arr[0] = " + arr[0] +", arr[1] = "+arr[1]);
swapArr(arr); // 함수 안에서 처리
System.out.println("변경후 arr[0] = " + arr[0] +", arr[1] = "+arr[1]);
// 위의 코드는 매개변수로 들어간 값이 배열의 주소이기 때문에
// 해당 주소의 배열값이 실제로 바뀌어 버림
value address(=pointer) <-- 각각 다른것이 넘어옴
static int func(int n, int arr[]) {
System.out.println(n);
System.out.println(arr[0]);
n = 22;
arr[0] = 22;
return n;
}
static void arrDiv2(int aNum[]) {
for (int i = 0; i < aNum.length; i++) {
aNum[i] /=2 ;
}
}
// swap 함수
static void swap(int a, int b) {
int temp;
temp = a;
a = b ;
b = temp;
}
//swap Array
static void swapArr(int[] arr) {
int temp;
temp = arr[0];
arr[0] = arr[1] ;
arr[1] = temp;
System.out.println("함수안 arr[0] = " + arr[0] + ", arr[1] = " + arr[1]);
}
static void standardFunc (int a, int[] arr) {
// 배열은 주소값이 매개변수로 들어가기 때문에 return 하는 결과와 똑같이 된다.
}
// 배열 return 함수가 필요할 때는
// 값들을 배열에 미리 담아서 반환할 때
// 예시 : 랜덤 숫자 받을때
static int[] randomValue() {
int arr[] = new int[3];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 3);
}
return arr;
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 6 - Example 02 : Shuffle 메소드로 구현하기 (0) | 2019.11.26 |
---|---|
Java Basic : day 6 - Example 01 : 두 점사이의 거리 구하기 (0) | 2019.11.26 |
Java Basic : day 6 - 메소드(함수) : Function (0) | 2019.11.26 |
Java Basic : day 5 - insertion sorting 삽입 정렬 (0) | 2019.11.22 |
Java Basic : day 5 - 버블정렬 (Bubble Sorting) (0) | 2019.11.22 |