달력

1

« 2020/1 »


 

변환(Type Conversion)

·       초기화 시에만 변환 적용됩니다.

·       하나의 타입을 다른 타입으로 바꾸는 것을 의미합니다.

·       타입 변환이라고도 합니다.

 

 

 

 

변환(Type Conversion) 종류

기본 자료형 값을 다른 자료형으로 변환할 있는 기능을 의미하며 가지 종류가 있습니다.

boolean형을 제외한 나머지 기본 타입 간의 타입 변환을 자유롭게 수행할 있습니다.

·       프로모션(promotion)

·       디모션(demotion)

 

 

 

 

 

프로모션(promotion)

·       자료형으로 변환

·       작은 자료형 -> 자료형

·       대입 연산자에서 왼쪽의 자료형이 오른쪽 결과의 자료형보다 발생합니다.

·       정보의 손실 없음

·       내부적으로 자동으로 형변환을 수행합니다.(자동 형변환; 묵시적 형변환; Implicit Type Conversion)

short s=7;

float f = s + 3.14f;

 

 

 

산술연산식에서 자동 형변환

산술연산식

연산 결과

정수 산술연산자 문자

정수

정수 산술연산자 정수

정수

정수 산술연산자 실수

실수

실수 산술연산자 정수

실수

실수 산술연산자 실수

실수

 

 

 

 

 

 

 

디모션(demotion)

·       작은 자료형으로 변환

·       자료형 -> 작은 자료형

·       경우에 따라 정보의 손실 발생

·       사용자가 형변환을 직접 지정합니다.(명시적 형변환; Explicit Type Conversion)

int i = 0;

short s=10;

i = (int)(10 + 3.5f);

 

 

 

명시적 형변환

·       자동 변환 발생지점을 표시하기 위해서 사용(의도한 변환임을 표시)

·       자동 변환의 규칙에 위배되지만 변환 필요한 상황에 사용(디모션)

·       중괄호 사용하여 표현하며 괄호를 타입 캐스트(type cast) 연산자라고 합니다.

 

(자료형)

(자료형)수식

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

   

   

자바의 자동 형변환 규칙(Implict Conversion)

값의 표현 범위로 자동 형변환됩니다.


   

 

double num = 3.14f + 10;

//10 10F 자동 형변환

 


Posted by codedragon codedragon

댓글을 달아 주세요

   

자료형 변환-표현방법의 변환을 의미

   

소스코드

  1.  public class CastEx02 {
  2.    
  3.         public static void main(String[] args)
  4.         {
  5.                 short num1=10;
  6.                 short num2=20;
  7.                 short result=(short)(num1 + num2);
  8.                 //short to int -> 연산 -> int to short (내부적으로 자동으로 일어남)
  9.                  
  10.                 System.out.println(result);
  11.         }


   

   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요

   

자동형 변환을 통해 문자의 유니코드 값 출력

   

   

소스코드

  1.  public class CastEx01 {
  2.    
  3.         public static void main(String[] args)
  4.         {
  5.                 char ch1='A';
  6.                 char ch2='Z';
  7.                          
  8.                 int num1=ch1;
  9.                 int num2=(int)ch2;
  10.    
  11.                 System.out.println("문자 A 유니코드 : "+num1);
  12.                 System.out.println("문자 Z 유니코드 : "+num2);     
  13.         }
  14. }


   

   

출력결과

   

Posted by codedragon codedragon

댓글을 달아 주세요