파라미터

Moom2n·2024년 2월 22일
0

Java

목록 보기
2/26

파라미터

- 파라미터 선언과 호출

재귀호출 max(max(i, j), k)

int add(int i)
int add(1+2)

에서

일반 int iformal Parameter 라고 한다.
1+2 가 파라미터 일 시에는 actual Parameter 라고 한다.

- 파라미터 전달 매커니즘

  • Pass by Value
    값을 복사해서 전달
    값을 수정해도 원본 데이터에는 영향을 미치지 않음
public class passtest {
    static void process(int value) {
        System.out.println("전달 받은 파라미터 값 : " + value);
        value = 10;
        System.out.println("변경된 파라미터 값 : "+value);
    }

    public static void main(String[] args) {
        int i = 5;
        System.out.println("선언한 변수의 초깃 값 : "+i);
        process(i);
        System.out.println(("process 함수 호출 이후 변수의 값 : "+i));
    }
}
  • Pass by Reference
    주소 값을 전달 – 실제 값이 있는 위치를 전달
    값을 수정하면 원본 데이터의 값에 영향을 미침

자바는 참조넘기기 지원하지 않음. 무조건 pass by value 임.
사용하려면 int[] array 등의 배열 사용해서 넘길것

int i = 5;
int j = i;
int [] array = {1,2};
int [] array2 = array;
완벽하게 다르게 동작한다.

- 가변 길이 목록 파라미터 사용

public class changepara {
    public static int max(int... values) {
        int big = 0;
        for(int i:values) {
            if(i>big) {
                big = i;
            }
        }

        return big;
    }

    public static void main(String[] args) {
        System.out.println(max(3,5,6,7,8));
    }
}

이 때 values 는 int 타입의 배열로 인식을 한다.

- 재귀 메소드 사용

static int factorial(int n) {
    if (n < 1) {
        return 1;
    }
    else {
        return factorial(n - 1) * n;
    }
}

조건에 맞을 때까지 함수를 호출해 새로운 지역 스택이 계속 생성된다.
ex). 피보나치 수열 (인구 감소 예측)


0개의 댓글

관련 채용 정보