Contents

Java
2013.12.28 09:41

3.6.5 참조 변수의 타입

조회 수 1177 추천 수 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 1.4.5 그 외 데이터 타입 IT장인 2013.11.21 67923
67 Java 3.5.3 private에 접근하는 방법 IT장인 2013.12.28 5036
66 Java 3.5.5 private 멤버 필드를 사용하는 이유 IT장인 2013.12.28 2546
65 Java 3.6.3 참조 변수의 특징 IT장인 2013.12.28 1778
64 Java 3.6.6 MotorCycle m = new MotorCycle() IT장인 2013.12.28 1583
63 Java 3.5.2 private의 접근과 컴파일 에러 IT장인 2013.12.28 1365
62 Java 1.4.2 정수형과 실수형 메모리의 형태 IT장인 2013.11.21 1365
61 Java 3.6.2 참조값의 원리 IT장인 2013.12.28 1272
» Java 3.6.5 참조 변수의 타입 IT장인 2013.12.28 1177
59 Java 3.6.4 참조 변수끼리의 할당 IT장인 2013.12.28 1148
58 Java 3.6.7 결론 IT장인 2013.12.28 994
57 Java 3.5.1 접근제어란? IT장인 2013.12.28 727
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6