본문 바로가기

JAVA

형 변환(케스팅)

▶ 데이터 형 (타입)

  자바 8 개의 기본형 ( primitive type)

1. 논리형 (ture or false)

 - boolean 타입은 true or false를 담을 수 있다. 
boolean isCheck = false; 

2. 문자형

 - char 타입은 문자1개만 담을 수 있으며 홑 따옴표로 시작해서 닫는다. 
char myChar = 'A'; 

3 . 정수형 

 - 가장 작은 범위의 숫자 표현형

byte (1byte)

 - 작은 범위의 숫자 표현형. -32768 ~ +32767 
short (2byte)
 - 주로 쓰이는 숫자 표현형 
int (4byte) 
 - 더 큰 범위 숫자 표현형. 
long (8byte) : 정수형 long 타입은 리터럴 접미사 'L' 붙인다.


4. 실수형
 - float myFloat = 0.0f; 
double myDouble = 0.0; 

 

▶ 형변환 

케스팅 : 기본형이 값에 의해 형이 바뀌는 것

int myInt2 = 0.0; -> 값이 변수 타입과 맞지 않는다. error

int myInt2 = (int)0.0;

 

형 변환을 하는 이유.

다른 자료형(데이터형)으로 변환 하기 위함.

 

1) 명시적 형 변환

작은 데이터형 변수를 큰 데이터형 변수에 대입하기 위해 명시적으로 형변환 작업을 해야한다.

int inum = 160;
double dnum = inum;

 

 - int(4byte) → byte(1byte) 으로 변환시 크기가 기존보다 작아져 반드시 케스팅 연산자 필요.(크기 수용 불가)

 - short(2byte) → char(2byte) 으로 변환시 범위(정수,문자)가 달라서 케스팅 연산자 필요.

 - char(2 byte) → int(4byte) 으로 형 변환시 크기가 기존보다 크기 때문에 케스팅 연산자 생략 가능.

 

 

2) 케스팅 연산자를 활용하여 형 변환.

큰 데이터 형에서 작은 데이터 형으로 변환 시 케스팅 연산자를 활용해야 하며 변환될 데이터형의 크기를 넘으면 안 된다.

int inum2 = (int) dnum

 

▶ 다른 데이터 형끼리 연산하기

다른 데이터 형끼리 연산시 큰형으로 변환 후 연산이 된다.

연산을 할 경우 연산자 우선순위를 기억하여 코드 작성해야 하는점을 주의하자.

int inum3 = 10;
double dnum2 = 5.2;
System.out.println("다른 형 끼리 연산 ->"+inum3+dnum2);
System.out.println("다른 형 끼리 연산 ->"+(inum3*dnum2));

 - 기본형 연산

(1) 'A' + 'B' = ???

문자코드 'A' = 65, 문자코드 'B' = 66 으로 'A'+'B' = 131

 

(2) '1'+2 = ???

문자코드 '1'의 값은 49로, 49+2 = 51

 

(3) '1'+'2' = ???

문자코드'1'의 값은 49, 문자코드'2'의 값은 50으로, 49+50=99

 

(4) true + null = ???

오류. 연산 불가능

'JAVA' 카테고리의 다른 글

JAVA 클래스  (0) 2020.04.21
JAVA의 배열  (0) 2020.04.21
Java의 변수  (0) 2020.04.21
Java 실행하기  (0) 2020.04.14
예외처리  (0) 2020.04.10