자바/자바 기초

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