Call
์๋ฐ๋ call by value์ call by reference ์ค ๋ฌด์์ธ๊ฐ์?
์๋ฐ๋ call by value์ด๋ค.
์๋ฐ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ๋ ๊ธฐ๋ณธ๊ฐ์ด๋ ์ฐธ์กฐ๊ฐ์ด๋ ๊ฐ์ ํญ์ ๋ณต์ฌํด์ ์ ๋ฌํ๋ค.
์๋ก์ด ์คํ ํ๋ ์์ด ์์ฑ๋๋ฉด ํด๋น ์คํ ํ๋ ์์๋ ๋ณต์ฌํด์ ๋๊ธด ์ฐธ์กฐ๊ฐ์ ํ ์์ญ์์ ์๋กญ๊ฒ ์ถ๊ฐํด ์ฐธ์กฐํ๋ค.
๋๋ฌธ์ ๊ธฐ์กด ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๊ณ , ์๋์ ๊ฐ์๋ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
๊ฐ์ฒด์ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์ง๋ง, ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ ์์ฒด๋ ๋ณ๊ฒฝํ ์ ์๋ค.
call by value์ call by reference ์ ์ฐจ์ด ์์๋ฅผ ์ฝ๋๋ฅผ ํตํด ๋ณด์ฌ์ฃผ์ธ์.
public class Main {
public static void main(String[] args) {
int value = 5;
callByValue(value);
System.out.println("value = " + value); //value = 5
int[] ref = {5};
callByRef(ref);
System.out.println("ref[0] = " + ref[0]); //ref[0] = 6
}
private static void callByValue(int value) {
value++;
}
private static void callByRef(int[] ref) {
ref[0]++;
}
}call by value๋ ์ธ์๋ก ๋ฐ์ ๊ฐ์ ๋ณต์ฌํ์ฌ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด๊ฐvalue์๋ ์๋ฌด ์ํฅ์ด ์๋ค.call by reference๋ ์ธ์๋ก ๋ฐ์ ๊ฐ์ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์ฐธ์กฐref์๋ ์ํฅ์ด ์๋ค.
์ฐธ๊ณ
Last updated