κ°λ¨νλ©΄μλ ν·κ°λ¦¬λ κ°λ μ€ νλμ΄λ€.
κ²°λ‘ : μλ°λ Call by Value
μ΄λ€.
Primitive Type(μμ μλ£ν)μ κ²½μ° Call by Value
- int, short, long, float, double, char, boolean
Reference Type(μ°Έμ‘° νμ )μ κ²½μ° Call by Value
- Array, μ°Έμ‘° νμ
μλ°μμλ ν¨μμ μΈμλ‘ μ λ¬λλ νμ μ΄ κΈ°λ³Έν(μμ μλ£ν)μΈ κ²½μ° κ°μ λκΈ°κ² λμ΄μλ€. μ΄ κ²½μ° λ©λͺ¨λ¦¬μλ ν¨μλ₯Ό μν λ³λμ 곡κ°μ΄ μμ±λλ€. μ΄λ ν¨μ μ’ λ£μ μ¬λΌμ§λ€. λ°λΌμ ν¨μ μμμ ν΄λΉ μΈμμ κ°μ λ³κ²½νλλΌλ μλ³Έ κ°μ λ°λμ§ μλ νΉμ§μ΄ μλ€.
public class Test {
public static void main(String[] args) {
int n = 10;
System.out.println(n);
test(10);
System.out.println(n);
// κ°μ΄ λ°λμ§ μλλ€λ κ±Έ λ³Ό μ μλ€.
}
public static void test(int n) {
n -= 5;
System.out.println(n);
}
}
// κ²°κ³Ό
10
5
10
μ°Έμ‘°ν(μ°Έμ‘° νμ )μΈ κ²½μ°, λ³μκ° κ°μ§λ κ°μ΄ μ£Όμ κ°μ΄λ―λ‘ Call by Valueμ μν΄ μ£Όμ κ°μ΄ μ λ¬λλ€. λ°λΌμ ν¨μ μμμ ν΄λΉ μΈμμ κ°μ λ³κ²½νκ² λλ©΄ μ£Όμκ°μ ν΅ν΄ μ°Έμ‘°νκ³ μλ κ°μ λ³κ²½νκΈ° λλ¬Έμ μλ³Έ κ°λ λ°λκ² λλ νΉμ§μ΄ μλ€.
public class Test {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
for (int num : arr) System.out.print(num + " ");
System.out.println();
test(arr);
for (int num : arr) System.out.print(num + " ");
}
// μ°Έμ‘°νμ κ²½μ°, μ£Όμκ°μ΄ μ λ¬λλ―λ‘ κ°μ λ³κ²½νλ©΄ μλ³Έλ μν₯μ λ°λλ€.
public static void test(int[] a) {
for (int i = 0; i < a.length; i++) {
a[i] *= 10;
}
}
}
// κ²°κ³Ό
1 2 3
10 20 30