본문 바로가기
코딩/JAVA

[JAVA] 자바 문법 타입 변환하기

by 인생최적화 2020. 6. 5.
반응형

 

자바(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);
		
	}
}

 


 

자바 문법
타입 변환이었습니다

오늘도 좋은 하루 되세요

'인생최적화'

 

 

반응형

댓글