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 클래스로 둔다. 그리고 이 클래스의 이름이 파일의 이름이 된다.


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

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
68 Java 3.6.7 결론 IT장인 2013.12.28 948
67 Java 3.6.6 MotorCycle m = new MotorCycle() IT장인 2013.12.28 1438
» Java 3.6.5 참조 변수의 타입 IT장인 2013.12.28 1121
65 Java 3.6.4 참조 변수끼리의 할당 IT장인 2013.12.28 1103
64 Java 3.6.3 참조 변수의 특징 IT장인 2013.12.28 1633
63 Java 3.6.2 참조값의 원리 IT장인 2013.12.28 1226
62 Java 3.6.1 객체의 메모리 생성 IT장인 2013.12.28 534
61 Java 3.5.5 private 멤버 필드를 사용하는 이유 IT장인 2013.12.28 2531
60 Java 3.5.4 private의 사용 이유 IT장인 2013.12.28 524
59 Java 3.5.3 private에 접근하는 방법 IT장인 2013.12.28 4866
58 Java 3.5.2 private의 접근과 컴파일 에러 IT장인 2013.12.28 1356
57 Java 3.5.1 접근제어란? IT장인 2013.12.28 726
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6