자바의 경우 파라메터에 객체를 던지면, 그 객체의 주소를 알려준다. 따라서 객체값을 던진 파라메터는 그 객체의 주소로 들어가 원본에 영향을 미친다.
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;
값을 한번만 사용하고 싶을 때
'Java' 카테고리의 다른 글
SubString() 문자열 자르기 사용법 & 예제 정리 (0) | 2022.02.14 |
---|---|
자바 빌더패턴 @Builder , 메서드 체인(Method chaining) 알아보기 (0) | 2022.01.15 |
this 키워드 모두 정리!! (변수,생성자,파라메터,클래스) (0) | 2022.01.15 |
인텔리제이에서 Javadoc 생성하기 (0) | 2022.01.13 |
오버라이딩 vs 오버로딩 (0) | 2022.01.08 |
댓글