결과적으로 자바는 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 |