Java
2013.12.28 09:42
3.6.6 MotorCycle m = new MotorCycle()
조회 수 3135 추천 수 0 댓글 0
3.6.6 MotorCycle m = new MotorCycle()
지금까지 참조 변수에 대해서 알아보았다. 여러분은 객체를 생성하는 단 한 줄의 구문으로 많은 시간을 투자한 것이다. 단 한 줄이지만 그만한 가치가 있었을 것이다. 마무리하는 의미에서 다시 정리를 해보자.
□ MotorCycle m = new MotorCycle();
◇ MotorCycle : 새로운 사용자 정의 데이터 타입
◇ m : MotorCycle 데이터 타입으로 선언한 참조 변수(객체 변수)
◇ new : 메모리를 생성하는 연산자, 참조값을 리턴한다.
◇ MotorCycle() : 메모리 생성 후 해당 메모리의 초기화 작업을 담당하는 생성자
이쯤에서 결론을 내려보자.
□ 결론
◇ 객체 변수는 참조 변수다.
◇ 객체의 이름은 참조값(Reference)이 할당되기 때문에 다른 참조값을 할당한다 하더라도 실제 객체에 연결된 내부의 메모리는 복사가 되지 않는다. 단순한 참조값에 대한 값복사가 이루어진다.
◇ 참조값만 가지고 있다면 해당 객체를 핸들할 수 있다.
객체를 복사하면 참조값만 복사되기 때문에 클론(clone)이라는 기법을 이용해서 연결된 메모리까지 복사하는 기법이 있다. 이것은 10장의 Object 클래스를 학습하면서 배우게 될 것이다.
□ 메모리 차원의 객체 복사 기법
◇ 객체의 실제 메모리를 복사하기 위해서 클론(clone)이라는 기법을 사용한다.
이 절에서 나오는 객체의 할당에서 가장 중요한 부분은 바로 객체는 참조값이라는 것이다.
주소의 참조값 즉 레퍼런스(Reference)라는 것은 할당을 하더라도 단순한 레퍼런스만 복사될 뿐 객체의 메모리는 복사되지 않는다. 객체를 복사할 수 없기 때문에 자바에서 객체에 대한 메모리 차원의 복사를 위해서 Cloneable이라는 인터페이스를 제공해주고 있다. 객체복사는 차후에 배우게 될 것이다.
여기서는 객체끼리 할당하려고 한다면 당연히 데이터 타입이 같아야 한다는 것과 할당이 이루어질 때 참조값만이 복사된다는 것을 기억해두기 바란다.
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
68 | Java | 3.6.7 결론 | IT장인 | 2013.12.28 | 1448 |
» | Java | 3.6.6 MotorCycle m = new MotorCycle() | IT장인 | 2013.12.28 | 3135 |
66 | Java | 3.6.5 참조 변수의 타입 | IT장인 | 2013.12.28 | 1476 |
65 | Java | 3.6.4 참조 변수끼리의 할당 | IT장인 | 2013.12.28 | 1562 |
64 | Java | 3.6.3 참조 변수의 특징 | IT장인 | 2013.12.28 | 2094 |
63 | Java | 3.6.2 참조값의 원리 | IT장인 | 2013.12.28 | 1701 |
62 | Java | 3.6.1 객체의 메모리 생성 | IT장인 | 2013.12.28 | 547 |
61 | Java | 3.5.5 private 멤버 필드를 사용하는 이유 | IT장인 | 2013.12.28 | 2672 |
60 | Java | 3.5.4 private의 사용 이유 | IT장인 | 2013.12.28 | 543 |
59 | Java | 3.5.3 private에 접근하는 방법 | IT장인 | 2013.12.28 | 5586 |
58 | Java | 3.5.2 private의 접근과 컴파일 에러 | IT장인 | 2013.12.28 | 1480 |
57 | Java | 3.5.1 접근제어란? | IT장인 | 2013.12.28 | 752 |