inblog logo
|
sxias
    자바

    [JAVA] 3. 변수의 캐스팅 (형 변환)

    문정준's avatar
    문정준
    Feb 03, 2025
    [JAVA] 3. 변수의 캐스팅 (형 변환)
    Contents
    1. 묵시적 형 변환 (Upcasting)2. 명시적 형 변환 (Downcasting)
    💡
    한 데이터 타입을 다른 데이터 타입으로 변환 (Type Casting)
     

    1. 묵시적 형 변환 (Upcasting)

    묵시적 형 변환은 업캐스팅(Upcasting)이라고 하며, 크기가 작은 변수형을 크기가 큰 변수형으로 변환하는 것을 말합니다.
    notion image
    n2가 실수로 선언이 되어있고 n1이 정수로 선언이 되어 있을 때, n1을 n2에 저장하는 것은 큰 문제가 되지 않을 것입니다. n1은 4바이트이고, n2는 8바이트로 선언이 되어있기 때문입니다.
    작은 박스를 큰 박스 안에 담는 것이 문제가 되지 않듯, 크기가 작은 변수를 크기가 큰 변수형에 저장하는 것 또한 문제가 되지 않기에, 이를 암묵적으로 허용합니다.
    package ex01; public class Var02 { public static void main(String[] args) { // 1. 묵시적 형 변환 (암묵적) - 업캐스팅 int n1 = 10; double n2 = 10.5; n2 = n1; System.out.println(n2); } }
     
    notion image
     
     

    2. 명시적 형 변환 (Downcasting)

    명시적 형 변환은 다운캐스팅(Downcasting)이라고 하며, 변수의 유형을 강제로 변환해야 할 때 사용합니다.
    notion image
    int를 double 저장 공간 안에 넣는 것은 가능했지만, double을 int의 저장 공간 안에 저장할 수는 없습니다. 저장 공간이 double이 더 크기 때문에 데이터 형 변환이 불가능하다는 오류를 출력합니다.
    아래의 코드를 실행하면, 오류 메시지와 함께 실행이 중단되는 것을 확인할 수 있습니다.
    package ex01; public class Var02 { public static void main(String[] args) { // 2. 명시적 형 변환 (강제로) - 다운캐스팅 int n3 = 5; double n4 = 5.5; n3 = n4; System.out.println(n3); } }
    • 오류 발생 : Java: 호환되지 않는 유형: double에서 int로의 손실 변환 가능성
    notion image
     
    이 때문에 명시적 형 변환을 진행할 때에는,
    💡
    명시적 형 변환
    n3 = (int) n4;
    이와 같이 소괄호와 함께 변환할 자료형을 함께 표시해야 합니다. 이때, 저장 크기가 큰 데이터를 다른 자료형으로 강제 변환할 경우, 데이터의 손실이 발생합니다.
    아래의 예제에서 double인 n4를 int로 변환하면 소수점이 없어지고 5만 남는 것을 볼 수 있습니다.
    package ex01; public class Var02 { public static void main(String[] args) { // 2. 명시적 형 변환 (강제로) - 다운캐스팅 int n3 = 5; double n4 = 5.5; n3 = (int) n4; System.out.println(n3); } }
    • 결과
    notion image
    Share article
    Contents
    1. 묵시적 형 변환 (Upcasting)2. 명시적 형 변환 (Downcasting)

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog