Contents

Java
2013.12.28 09:41

3.6.5 참조 변수의 타입

조회 수 1208 추천 수 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 결론

    Date2013.12.28 CategoryJava ByIT장인 Views1123
    Read More
  2. 3.6.6 MotorCycle m = new MotorCycle()

    Date2013.12.28 CategoryJava ByIT장인 Views1713
    Read More
  3. 3.6.5 참조 변수의 타입

    Date2013.12.28 CategoryJava ByIT장인 Views1208
    Read More
  4. 3.6.4 참조 변수끼리의 할당

    Date2013.12.28 CategoryJava ByIT장인 Views1188
    Read More
  5. 3.6.3 참조 변수의 특징

    Date2013.12.28 CategoryJava ByIT장인 Views1818
    Read More
  6. 3.6.2 참조값의 원리

    Date2013.12.28 CategoryJava ByIT장인 Views1301
    Read More
  7. 3.6.1 객체의 메모리 생성

    Date2013.12.28 CategoryJava ByIT장인 Views536
    Read More
  8. 3.5.5 private 멤버 필드를 사용하는 이유

    Date2013.12.28 CategoryJava ByIT장인 Views2551
    Read More
  9. 3.5.4 private의 사용 이유

    Date2013.12.28 CategoryJava ByIT장인 Views526
    Read More
  10. 3.5.3 private에 접근하는 방법

    Date2013.12.28 CategoryJava ByIT장인 Views5110
    Read More
  11. 3.5.2 private의 접근과 컴파일 에러

    Date2013.12.28 CategoryJava ByIT장인 Views1375
    Read More
  12. 3.5.1 접근제어란?

    Date2013.12.28 CategoryJava ByIT장인 Views727
    Read More
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6