결과적으로 자바는 call by value입니다. C/C++과 같이 주소값을 직접 사용하는 것이 아닌, 복사해서 사용합니다.
반면, C/C++은 call by reference로 값을 전달할 경우 주소 자체가 전달됩니다.
#includeusing namespace std; class Student{ public: int age; public: Student(int age) : age(age){ } ~Student(){ } }; void change(Student &st){ st = Student(50); } int main(){ Student st(14); cout << st.age << endl; change(st); cout << st.age << endl; return 0; }
출력>>
14
50
JAVA
class Student{
int age;
Student(int age){
this.age=age;
}
}
public class Test {
public static void change(Student user) {
user = new Student(50);
}
public static void main(String[] args) {
Student st = new Student(14);
System.out.println(st.age);
change(st);
System.out.println(st.age);
}
}
출력>>
14
14
'STUDY > JAVA' 카테고리의 다른 글
| [JAVA]내부클래스, 중첩클래스, 지역클래스, 익명클래스 (0) | 2018.09.12 |
|---|---|
| [JAVA]접근제어자 (0) | 2018.09.12 |
| [JAVA]java의 인터페이스(interface)와 추상 클래스(abstract class) (0) | 2018.09.12 |
| [JAVA]Java에서 지원하는 Type(Primitive Type, Reference Type) (0) | 2018.09.07 |
| [JAVA]객체와 인스턴스 (0) | 2018.09.07 |