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