2011. 4. 13. 10:52

1. exam01.java 소스코드 작성

묵시적 형 변환에 관련된 예제 입니다.


3 - short형 변수 S01 에 10을 대입합니다.
4 - short형 변수 S02 에 20을 대입합니다.
5 - short형 변수 S03 에 10+20의 결과를 대입합니다.
6 - short형 변수 S04 에 변수S01 과 변수 S02를 더한다음 그것의 결과를 대입합니다.*
7 - long형 변수 S05 에 변수S01 과 변수 S02를 더한다음 그것의 결과를 대입합니다.


저장 후, 컴파일 하면 에러가 발생합니다.

6번째 라인에서 오류가 발생했음을 알리는 메시지 입니다.


이유....
자바에서 연산을 하면서 변수 타입이 기본으로 자동 지정되어졌기 때문입니다.
정수 + 정수 에서 기본 데이터 타입이 int 형인데 이것을 int보다 작은 크기인 short 에 넣겠다고 해서 발생한 오류입니다.


[해결 방법]
방법1 - 연산 부분을 괄호로 묶고 앞에 명시적 형 변환을 합니다.
           short S04 = (short)(S01+S02)

방법2 - 변수 S04의 타입을 int 형으로 선언 합니다.
         int S04 = S01+S02

방법3 - 변수 S04의 타입을 String 형으로 선언 하고, 뒤에 +"" 를 추가하여 문자화 합니다
           (주의! - 방법3 의 경우, 데이터가 문자열로 인식됩니다.)
           String S04 = S01+S02+""



* 자바에서 연산시 기본으로 지정되는 데이터 타입
정수연산 - int
실수연산 - double
문자결합 - String

정수 + 정수 = int
정수 + 실수 = double
정수 or 실수 + "문자" = String


그냥 간단하게...
작은 크기에서 큰 크기로 형 변환은 자동(묵시적)으로 이루어 지지만, 그 반대 의 경우에는 반드시 명시적으로 형 변환을 해 주어야 합니다.

보다 자세한 데이터타입이나 크기는 검색을...
Posted by 해비