형변환
:값의 타입을 다은 타입으로 변환하는 것.
boolean을 제외한 7개의 기본형은 서로 형변환 가능.
1.자동 형변환
:작은타입 -> 큰타입 (컴파일러에 의해 이루어짐)
치환문(=)이ㅣ나 수식 내에서 타입이 일치하지 않을 때
2.강제 형변환
:큰타입 -> 작은타입 (값 손실이 일어날 수 있음)
()안에 변환할 타입을 지정
변환 | 수식 | 결과 |
int -> char | (char)65 | 'A' |
char -> int | (int) 'A' | 65 |
float -> int | (int)1.6f | 1 |
int -> float | (float)10 | 10.0f |
숫자->문자 +'0'
문자->숫자 -'0'
숫자->문자열 +""
문자열->숫자 +""
문자열->숫자 Integer.parseInt("3")
Double.parseDouble("3.4")
문자열->문자 "3".charAt(0)
예시
public class TypeConversion {
public static void main(String[] args) {
byte b = 127;
int i = 100;
System.out.println(b + i);
System.out.println(10/4);
System.out.println(10.0/4); //실수와 정수 연산 ->실수
System.out.println((char)0x1230041); // 강제타입변환 결과 0x41이 되며, 문자 A의 코드임.(손실되고 0x41만 남는거임)
System.out.println((byte)(b + i));
System.out.println(2.9 + 1.8); //둘다 double일땐 이상무~
System.out.println(2.9f + 1.8); //컴터는 소수점 자리를 맞춰서 계산할 줄 모르기 때문에 혼용해서 쓰면X
System.out.println((int)2.9 + 1.8); //앞에만 붙여서 2.9만 정수 된겨
System.out.println((int)(2.9 + 1.8)); //묶어서 둘다 정수가 되게 해주긔
System.out.println((int)2.9 + (int)1.8); //소수점 다 빼고 계산하고 싶을땐 각각!
}
}
public class TypeCast {
public static void main(String[] args) {
byte by = 56;
int i = by; //by에 있는 56이라는 값이 프로모션돼서 i에 들어왓슈
double d1 = 3.14f + 1.5f;
int a = 60;
int b = 50;
System.out.println(sum(a,b));
int n = 300;
byte m = (byte) n; //int는 byte보다 크니까 byte애 넣으려면 n값을 형변환 시켜줘야댐
System.out.println(m); //작은데에 넣을려니까 값손실이 일어나서 44가 출력댐
double d = 1.9;
n = (int)d;
System.out.println(n);
}
public static double sum(double a, double b) {
return a + b;
}
}
'JAVA' 카테고리의 다른 글
JAVA Scanner, BufferedReader (0) | 2022.07.09 |
---|---|
JAVA 아스키코드표 (0) | 2022.07.09 |
JAVA 각종 클래스 -메소드 (0) | 2022.07.09 |
JAVA 출력문 print, println, printf (0) | 2022.07.08 |
JAVA 연산자 (0) | 2022.07.07 |