본문 바로가기
language/JAVA

[JAVA] 제 3 - 2장 타입 변환 (형 변환)

by JongDroid 2020. 12. 13.

2020/12/08 - [자바] - [JAVA] 제 3 - 1 장 변수의 활용편 (출력문)

 

지난 시간은 변수를 활용해서 출력문을 작성하는 방법을 살펴보았습니다 !

 

오늘은 변수 끼리 값을 주고 받을 때, 서로 다른 자료형끼리 값을 주고 받을때 필요한

자동적인 형변환, 강제형변환을 살펴보고자 합니다 :) 

 

1.자동 타입 변환

byte a = 10; 

int b = a;

 

원래 10은 byte 타입의 값이었으나 값이 int 타입의 값으로 변환되었습니다. 자바에서는 이와 같은 행위를

타입 변환 이라고 합니다 ! 

 

즉 ! 큰 허용 범위 타입 ( int ) = 작은 허용 범위 타입( byte ) 을 의미 합니다. 

int 는 4byte , byte는 1byte 이므로 작은 박스가 큰 박스에 들어갈 수 있는 것은 어찌보면 당연합니다 :)

 

기본 타입 범위 크기순 byte < short < int < long < float < double

 

 

*예외* char 타입보다 허용 범위가 작은 byte 타입은 char 타입으로 자동 변환을 할 수 없습니다. 왜냐하면 char 타입의 허용 범위는 음수를 포함하지 않지만, byte 타입은 음수를 포함하기 때문 입니다. 

 

 

2.강제 타입 변환

큰 허용 범위 타입이 작은 허용 범위 타입에 들어간다면 자동으로 타입이 변환되지 않습니다 !

마치 큰 상자가 작은 상자에 들어갈 수 없는 것과 동일한 이치입니다. 하지만 큰 상자를 강제로 잘라서 작은 상자에 

꾸겨서 넣을수는 있습니다.

 

자바에서도 캐스팅 연산자 괄호 () 를 사용하여 강제로 타입을 변환할 수 있습니다.

 

작은 허용 범위 타입 = ( 작은 허용 범위 타입 ) 큰 허용 범위 타입

 

 

실수 타입(float double)은 정수 타입(byte short int long)으로 자동 변환되지 않기 때문에 강제 타입 변환을 사용해야 합니다. 이 경우 소수점 이하 부분은 버려지고, 정수 부분만 저장 됩니다.  :)

 

댓글