CH6-23 기본형 매개변수
메서드의 매개변수(파라미터)가 기본형일때와 참조형일때의 차이가 있다.
기본형일때는 변수의 값을 읽을 수만 있고,
참조형일때는 읽고, 변경할 수도 있다.
예제를 보자. 기본형 매개변수(값에 의한 호출)의 예시이다.
class Data { int x;}
class EX6_9 {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
System.out.println("main() : x = "+ d.x);
**change(d.x);**
System.out.println("After change(d.x)");
System.out.println("main() : x " + d.x);;
}
static void change(**int x**) {
x = 1000;
System.out.println("change() : x = " + x);
}
}
Chnage메서드를 이용해서 x에 1000을 넣어도, main내의 지역변수인스턴스 변수는 여전히 10의 값을 가짐을 보이는 예시이다. 왜? Change메서드의 지역변수와 main내의 지역변수인스턴스 변수는 이름만 같은 다른 지역변수와 인스턴스 변수이기 때문.
자바 문법으로 눈여겨 볼것은, chnage함수의 인자로 d.x
가 들어갔다는 점임. 즉 참조변수가 간접참조한 지역변수인스턴스 변수가 인자로 들어가고 있다.
또한 chnage함수의 파라미터는 그냥 int형 변수임. 즉 자바에서 기본형 매개변수는 C의 문법과 크게 다르지 않다.
CH6-24,25 참조형 매개변수, 참조형 반환타입
[자바의 정석 - 기초편] ch6-24,25 참조형매개변수, 참조형 반환타입
주소 자체를 복사해서 메서드 내에서 object에 직접 접근하는 참조형 매개변수를 다룬다.