자바/자바 기초
Call by Value
qkwi
2021. 11. 10. 17:13
728x90
Call By Value
- 메소드에 값(primitive type)을 전달 하는 것과 객체(reference type)를 전달한느 것에는 큰 차이가 있다.
- 메소드로 객체를 전달할 경우 메소드에서 객체의 객체변수값을 변경할 수 있게 된다.
// 값전달 class value_Plus{ public void num_plus(int count){ count ++; //값을 전달 받았기 떄문에 반환타입이 없는 이상 값을 전달하지 않는다. } } // 객체 변수 class ref_Plus{ public void num_plus(Num_class num_class){ num_class.num ++; } }
public class Num_class{
int num ;
public static void main(String[] args){
Num_class num_cl = new Num_class();
num_cl.num = 1;
value_Plus(num_cl);
System.out.println(num_cl.num);
ref_plus(num_cl);
System.out.println(num_cl); //1
value_Plus(num_cl);
System.out.println(num_cl.num); // 2
// 객체를 전달 할 경우만 값이 변경된다.
728x90