반응형
자바(JAVA) 문법 타입 변환하기
두 변수의 타입이 동일할 경우
한쪽 변수값을 다른 쪽 변수에 복사해서 저장할 수 있습니다만
두 변수의 타입이 다르다면
값의 저장이 가능할 수도 있고 그렇지 않을 수도 있습니다
[ 기본적인 타입 변환 ]
package com.test;
public class Test {
public static void main(String[] args) {
byte x = 10; //byte 타입 변수 x에 10을 저장
int y = x; //byte 타입 변수 x에 저장된 10을 int 타입 변수 y에 저장
}
}
[ 자동 타입 변환 ]
package com.test;
public class Test {
public static void main(String[] args) {
byte byteNum = 10; //바이트 타입 변수에 10을 저장하고
int intNum = byteNum; //인트 타입에 저장하면 인트로 자동타입변환
System.out.println("intNum : " + intNum);
intNum = 50;
long longNum = intNum;
System.out.println("longNum : " + longNum);
longNum = 100;
float floatNum = longNum;
System.out.println("floatNum : " + floatNum);
floatNum = 100.5F; //float타입은 뒤에 F를 붙여줘야합니다
double doubleNum = floatNum;
System.out.println("doubleNum : " + floatNum);
}
}
byte < short < int < long < float < double
자동 타입 변환은 값의 허용 범위가 작은 타입이
허용 범위가 큰 타입으로 저장될 때 발생합니다
[ 강제 타입 변환 ]
큰 허용 범위의 타입은 작은 범위의 타입으로 변환이 될 수는 없지만
강제 타입 변환을 하는 방법이 있습니다
package com.test;
public class Test {
public static void main(String[] args) {
int num1 = 10;
byte num2 = (byte)num1; //원래는 되지 않지만 byte타입으로 강제형변환
System.out.println("강제형변환 byte : " + num2);
double num3 = 3.14;
int num4 = (int)num3; //실수 타입이 정수타입으로 변환되면 소수점 이하부분은 삭제
System.out.println("강제형변환 int : " + num4);
}
}
강제 타입 변환을 캐스팅(casting) 이라고 합니다
[ 연습 예제 ]
package com.test;
public class Test {
public static void main(String[] args) {
double result1 = 1.6f + 3.4; //float는 double로 자동변환된다
System.out.println("result1 : " + result1);
int number1 = 20; //int타입 변수에 20을 저장
double number2 = 5.5; //doub타입 변수에 5.5를 저장
//두 값이 더해지는 과정에서 int타입인 number1은 double타입으로 변환된다
double result2 = number1 + number2;//result변수에 25.5가 저장됨
//굳이 int 타입으로 결과를 내고 싶다면
int result3 = number1 + (int)number2; //이런 방법도 가능하다
System.out.println("result2 : " + result2);
System.out.println("result3 : " + result3);
}
}
package com.test;
public class Test {
public static void main(String[] args) {
int x = 1;
int y = 2;
double result = x/y;
//결과값을 0.5로 예상하겠지만
//정수 x와 정수 y가 정수들끼리 연산하는 과정에서
//이미 0이 되어버리고 그 값을 double 타입에 담는 거라서
//결과값은 0.0이 된다
System.out.println("result : " + result);
}
}
[ 문자열 결합 연산 ]
package com.test;
public class Test {
public static void main(String[] args) {
String str1 = 5 + 1 + "9";
System.out.println("str1 : " + str1);
//숫자 5+1이 더해진 6에 문자 '9'가 따라붙는다
String str2 = 10 + "4" + 5;
System.out.println("str2 : " + str2);
//숫자 10에 문자 '4'가 붙고 숫자5가 붙는다
String str3 = "10" + (2+4);
System.out.println("str3 : " + str3);
//문자 '10'에 미리 연산된 6이 뒤에 붙는다
}
}
[ 문자열을 기본 타입으로 강제 형변환 ]
문자열을 기본 타입으로 변환하는 경우가 가장 많습니다
package com.test;
public class Test {
public static void main(String[] args) {
int a = Integer.parseInt("10"); //문자열 '10'을 int타입으로 강제형변환
double b = Double.parseDouble("3.14"); //문자열 '3.14'를 double타입으로 강제형변환
boolean c = Boolean.parseBoolean("true"); //문자열 'true'를 boolean타입으로 강제형변환
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);
System.out.println("----------");
String str1 = String.valueOf(11); //11을 문자열 '11'로 강제형변환
String str2 = String.valueOf(5.5); //5.5를 문자열 '5.5'로 강제형변환
String str3 = String.valueOf(false); //논리연산자 false를 문자열 'false'로 강제형변환
System.out.println("str1 : " + str1);
System.out.println("str2 : " + str2);
System.out.println("str3 : " + str3);
}
}
자바 문법
타입 변환이었습니다
오늘도 좋은 하루 되세요
'인생최적화'
반응형
'코딩 > JAVA' 카테고리의 다른 글
[JAVA] 자바 문법 입력하기 (2) | 2020.06.09 |
---|---|
[JAVA] 자바 문법 출력하기 (6) | 2020.06.08 |
[JAVA] 자바 문법 변수 사용하기 (4) | 2020.06.04 |
[JAVA] 자바 기초 실행문 주석 (0) | 2020.06.04 |
[JAVA] 자바 이클립스 프로젝트 만들기 (1) | 2020.06.03 |
댓글