Knowledge
call by reference/call by value
seulye
2022. 4. 13. 16:53
1. call by value (๊ฐ์ ์ํ ํธ์ถ)
- ์ฅ์ : ๋ณต์ฌํ์ฌ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์ ํ๋ค. ์๋์ ๊ฐ์ด ๋ณด์กด์ด ๋๋ค.
- ๋จ์ : ๋ณต์ฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ์ฉ๋์ด ๋์ด๋๋ค.
2. call by reference (์ฐธ์กฐ์ ์ํ ํธ์ถ)
- ์ฅ์ : ๋ณต์ฌํ์ง ์๊ณ ์ง์ ์ฐธ์กฐ๋ฅผ ํ๊ธฐ์ ๋น ๋ฅด๋ค.
- ๋จ์ : ์ง์ ์ฐธ์กฐ๋ฅผ ํ๊ธฐ์ ์๋ ๊ฐ์ด ์ํฅ์ ๋ฐ๋๋ค.(๋ฆฌ์คํฌ)
์๋ฐ๋ ํ์คํ๊ฒ Call by Value ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ํฌ์ธํฐ๋ ์๋ค.
- call by reference ๊ตฌํ
public class SwapTest {
int value;
public SwapTest(int value) {
this.value = value;
}
public static void swap(SwapTest a, SwapTest b) {
int temp = a.value;
a.value = b.value;
b.value = temp;
}
public static void main(String[] args) {
SwapTest a = new SwapTest(1);
SwapTest b = new SwapTest(2);
System.out.println(a.value + " " + b.value);
swap(a, b);
System.out.println(a.value + " " + b.value);
}
}
์ถ์ฒ : https://codingplus.tistory.com/29