안녕하세요
메소드의 매개변수 활용에 관하여 이해가 가지 않는 부분들이 있어서 질문드립니다.
아래의 소스 코드를 보시면
하나의 add 메소드는 매개변수중 하나가 배열 값의 인자를 받고
또 하나의 add 메소드는 모두 기본형만 인자를 받고 있습니다.
그런데 인자값을 배열로 받은 메소드는 리터럴을 수정하면 main 메소드안에 반영이 되는데
모두 기본형으로 인자값을 받은 메소드는 어째서 메인메소드에 선언된 a값 그대로 인가요?
그리고 기본형으로 인자값을 받는 메소드 public void add(int a,int b,int result) 는
메소드 안에서 result = a; // a=b+result; // b=result; 이렇게 해도 모두 값은 변하지 않지만
에러가 나지 않던데 위의 a값이 변하지 않는 이유가 만약 기본형 리터럴 값이라서 그런것이라면
result = a; --> 0 = 3 이렇게 되는데 어째서 오류가 나지 않는것인가요?
부탁드립니다.
```
public class Test5 {
int a = 0;
public void add(int a,int b, int result) {
a = b+result;
};
public void add(int a, int b, int [] arr) {
arr[0]=a;
}
public static void main(String[] args) {
Test5 ts = new Test5();
int a=3;
int b=5;
int result = 0;
int [] arr = new int[5];
ts.add(a, b, arr);
System.out.println(ts.a);
System.out.println(arr[0]);
}
}
```
sehongpark님의 답변
출력 결과도 적어주셔요 :(