본문 바로가기
프로그래밍 공부 정리/java

Call by Reference, Call by Value, 메소드 오버로딩

by 메기사랑 2021. 10. 25.

메소드의 중복(method overloading)

==> 생성자를 중복하여 정의 할 수 있듯이 같은이름의 메소드를 여러개 중복하여 정의 할 수 있습니다.

같은이름의 메소드를 중복하여 정의 할 수 있는 조건?

==> 매개변수의 개수가 다르거나 자료형이 달라야 합니다. 

 

메소드의 값에 의한 호출(Call by Value), 참조에 의한 호출(Call by Reference)

- 메소드 호출시에 전달되는 매개변수가 기본자료형인 경우를 Call by Value라고 합니다.

==> 값에 의한 호출은 메소드 호출시에 전달하는 매개변수의 값을 메소드 호출당하는 쪽에서(메소드 안에서) 그 값을 복사해서 새로운 메모리가 확보됩니다.

그래서 만약 메소드 안에게 매개변수의 내용을 바꾸더라도 서로 다른 메모리이기 때문에 호출한 쪽에서는 변경된 내용이 적용되지 않습니다

 

- 메소드 호출시에 전달되는 매개변수가 배열참조변수 이거나 객체 참조변수인 경우를 Call by Reference라고 합니다. ==> 참조에 의한 호출은 메소드 호출시에 전달되는 것이 값이 아니라 참조하고 있는 배열의 주소이거나 참조하고 있는 객체의 주소가 메소드에게 전달됩니다.

따라서 메소드안에서 참조하는 객체와 메소드 호출하는 쪽에서 참조하는 객체가 서로 동일합니다.

그래서, 만약 메소드안에서 참조하는 객체나 배열의 내용이 변경이 될때에 메소드 호출한 쪽에서도 변경된 내용이 적용됩니다.

'프로그래밍 공부 정리 > java' 카테고리의 다른 글

클래스의 상속  (0) 2021.10.27
재귀호출  (0) 2021.10.26
static 키워드  (0) 2021.10.24
this키워드, 생성자  (0) 2021.10.23
객체지향 프로그래밍의 특징 1) 은닉성(Encapsulation)  (0) 2021.10.22