본문 바로가기
Java

call by value , 다른 객체로의 접근

by Ms.Pudding 2022. 1. 30.

자바의 경우 파라메터에 객체를 던지면, 그 객체의 주소를 알려준다. 따라서 객체값을 던진 파라메터는 그 객체의 주소로 들어가 원본에 영향을 미친다. 

 

public class CallByObj {
    public static void main(String[] args) {

        Original org = new Original();
        System.out.println(org.number);

        Update ud = new Update();
        ud.updater(org);
        System.out.println(org.number);
    }
}

class Original{

    int number = 0; // 객체 변수
}

class Update{
    void updater(Original original){
        original.number++;
    }
}

Update 객체의 updater 메소드 파라메터 부분을 다른 객체를 넣어주었다.

따라서 Update객체는 객체 파라메터 값을 받아 다른 객체변수의 속성값을 변경해 준다.

call by value는 메소드의 파라메터에 객체를 넣어 객체 변수의 속성값을 변경해주는 것을 말한다

 

값은 0과 1이 나온다

 

 

 

참고로 객체를 만들 때는 두가지 방법이 있다. 

1.Student st = new Student();
st.age;
객체 값을 계속 사용하고 싶을 때 사용한다.


2.new Student.age; 
값을 한번만 사용하고 싶을 때 

댓글