Contents

Java
2013.12.28 09:41

3.6.5 참조 변수의 타입

조회 수 1121 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


3.6.5 참조 변수의 타입

참조 변수는 보잘 것 없는 4바이트의 정수라고 하였다. 그리고 참조값끼리 서로 할당할 수 있다고 하였다. 여기서 우리는 한가지를 짚고 넘어갈 것이 있다. 그것은 1장에서 배웠던 데이터 타입의 의미이다. 데이터 타입은 메모리의 크기와 형태를 지정하는 것이라고 배웠다. 아무리 객체 변수가 4바이트의 참조값을 가지고 있다 하더라도 타입은 있다. 이 타입(형)을 무시할 수는 없다. 객체를 출력했을 때 무엇이 출력되었는지 생각해보자.

□ 객체 변수의 출력
◇ MotorCycle@16930e2

객체를 출력하면 해당 객체의 타입과 객체를 구별하기 위한 번호인 해시코드가 출력된다. 객체 자체를 출력하면 쉽게 객체의 타입을 확인할 수 있다. 객체를 할당할 때 이 타입을 배제하고 할당할 수는 없다.

☞ 16진수의 해시코드
16진수의 해시코드는 사용자가 객체를 구별하기 위해서 사용하는 숫자값이다. 이 값이 참조값은 아니다.


참조 변수끼리 할당을 하더라도 같은 타입끼리 할당해야 한다. 다음의 예를 한번 보기 바란다.

§ chap03\RefMain.java
 
/**
잘못된 형식끼리의 참조값 할당을 증명하는 예제
**/
class Sos{ 
    //비어 있는 클래스
  
class Tot{ 
    //비어 있는 클래스  
  
public class RefMain {
    public static void main(String[] args){
        Sos s = new Sos(); 
        Tot t = new Tot(); 
        //이 부분은 에러가 발생합니다.
        s = t;//서로 다른 타입끼리의 참조값 할당 
    }
/***
c:\javasrc\chap03>javac RefMain.java
RefMain.java:17: incompatible types
found   : Tot
required: Sos
        s = t;//서로 다른 타입끼리의 참조값 할당
            ^
1 error
***/

위의 예제는 컴파일되지 않는다. 서로 다른 타입끼리의 참조값 할당을 했기 때문에 컴파일 에러가 발생한다.

☞ 참고
하나의 파일에 여러 개의 클래스가 존재할 때 단 하나의 클래스만이 public 클래스가 될 수 있다. 보통 main을 포함한 클래스를 public 클래스로 둔다. 그리고 이 클래스의 이름이 파일의 이름이 된다.


참조값이 단순히 정수값이라고 해서 참조값의 타입을 무시하면 에러를 만나게 될 것이다.

  1. 3.6.7 결론

  2. 3.6.6 MotorCycle m = new MotorCycle()

  3. 3.6.5 참조 변수의 타입

  4. 3.6.4 참조 변수끼리의 할당

  5. 3.6.3 참조 변수의 특징

  6. 3.6.2 참조값의 원리

  7. 3.6.1 객체의 메모리 생성

  8. 3.5.5 private 멤버 필드를 사용하는 이유

  9. 3.5.4 private의 사용 이유

  10. 3.5.3 private에 접근하는 방법

  11. 3.5.2 private의 접근과 컴파일 에러

  12. 3.5.1 접근제어란?

Board Pagination Prev 1 2 3 4 5 6 Next
/ 6