package variables;
public class Casting {
public static void main(String[] args) {
// 형변환(Casting)
// 특정 변수에 대한 자료형을 형변환 할 수 있다.
short tmpS; // 임시 저장변수
char tmpC; // 임시 저장변수
byte b = 97;
short s = 20;
char c = 'A';
float f = 1.23f;
tmpS = s;
s = b;
// b = s의 경우의 수도 비교하기 위해 s값을 임시변수에 저장.
System.out.println(s);
// 자료형 short변수에 byte형 데이터 대입연산
s = tmpS;
b = s;
// -> byte(1byte)는 short(2byte)보다 작은 크기의 자료형이기 때문에 대입이 불가능하다.
// -> (byte)를 붙여줌으로서 형변환 후 대입이 가능하다.
b = (byte)s;
tmpC = c;
c = b;
// char(1byte)에 byte(1byte)를 대입하는데 있어 크기에는 문제 없어보이나
// char 표현가능 범위(0 ~ 65535), byte 표현가능 범위(-128 ~ 127)를 비교해 봤을 때
// 음수를 char형 변수에 저장하는것은 불가능하다.
c = (char)b;
// byte형 변수 b를 char형으로 형변환 함으로서 대입연산이 가능해진다.
s = (short)c;
// 위 같은 경우도 표현범위(short(-32768 ~ 32767), char(0 ~ 65535))에 있어
// 예외가 있으므로 형변환 후 대입연산이 가능하다.
// java에서 실수 데이터는 기본적으로 double로 취급한다.
// float = double은 대입하는데 있어 데이터 크기상에 문제가 있으므로 아래 두가지 방법으로 대입이 가능하다.
f = 2.34f;
f = (float)2.34;
// 형변환을 통한 정수 + 단일문자 연산 및 출력
int integerData = 123;
int result;
char ch = 'D';
integerData += 10; // integerData = integerData + 10
ch = (char)(ch + 3);
result = integerData + ch;
System.out.println(ch);
System.out.println(result);
System.out.println((char)result);
}
}
JAVA/변수