SSISO Community

시소당

자바 call by val 와 call by ref의 차이 보기

public  class  CallbyValue2  {
  
  public  static  void  value(int  x){
    x+=100;
    System.out.println("value()  함수:  x="+x);
    
  }
  public  static  void  ref(Max  max){
    max.value    +=50;
    System.out.println("ref()함수:  topmax.value="+max.value);
  }
  public  static  void  main(String  args[]){
    int  x=50;
    Max  topmax=new  Max(150);
    
    System.out.println("기본형  전달  테스트");
    System.out.println("호출전:                x="+x);
    CallbyValue2.value(x);
    System.out.println("호출후:                x="+x);
    
    System.out.println();
    System.out.println("레퍼런스형  전달  테스트");
    System.out.println("호출전:                topmax.value="+topmax.value);
    CallbyValue2.ref(topmax);
    System.out.println("호출후:                topmax.value="+topmax.value);
  }  
  
}
class  Max{
  int  value;
  
  public  Max(int  p){
    value=p;
  }
}

  

결과값  

기본형  전달  테스트
호출전:                x=50
value()  함수:  x=150
호출후:                x=50

레퍼런스형  전달  테스트
호출전:                topmax.value=150
ref()함수:  topmax.value=200
호출후:                topmax.value=200

출처  자바  call  by  val  와  call  by  ref의  차이  보기|작성자  라티르타

665 view

4.0 stars