[Java] 형 변환 (타입 변환)

쓰옹·2022년 11월 17일
0

📙 Java 잡아🤏

목록 보기
2/25

데이터 타입을 다른 데이터 타입으로 변환하는 것을 말한다.



자동 형 변환(promotion)

  • 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생

  • byte타입은 char 타입으로 형변환 될 수 없음
    • why?char타입의 허용범위는 음수를 포함하지 않기 때문!

1 / 2

수학에서 1 나누기 2를 하면 0.5가 된다. 그걸 코드로 옮기면 0.0이 출력된다

public class Main {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        double result = a / b;
        System.out.println(result);  // 0.0이 출력
    }
}
  • 자바에서 정수 연산의 결과는 정수가 되므로
  • 정수 연산을 한 0값을 double타입 변수 result에 저장하므로 0.0이 된 것.
  • 0.5가 되기 위해서는 실수연산으로 변경해야한다.

강제 형 변환(casting)

  • 허용범위가 큰 타입을 작은 타입으로 강제로 나눠서 저장하는 것
  • 캐스팅 연산자 () 사용
작은 허용범위 타입 = (작은 허용 범위 타입) 큰 허용 범위 타입

public class Main {
    public static void main(String[] args) {
        int intValue = 65;
        char charValue = (char) intValue;
        System.out.println(charValue);  // A

        double doubleValue = 3.14;
        intValue = (int) doubleValue;
        System.out.println(intValue);  // 3
    }
}

문자열 -> 기본형

Integer.parseInt(), Double.parseDouble()

public class Main {
    public static void main(String[] args) {
        int value1 = Integer.parseInt("10");  //문자열
        double value2 = Double.parseDouble("3.14"); //문자열

        System.out.println(value1);  //10 정수형
        System.out.println(value2);  //3.14  실수형
    }
}

기본형 -> 문자열

String.valueOf()메소드 사용

public class Main {
    public static void main(String[] args) {
        String str1 = String.valueOf(10);  // 변수는 숫자형이지
        String str2 = String.valueOf(3.14);

        System.out.println(str1);  //10 문자열
        System.out.println(str2);  //3.14 문자열
    }
}






🧐reference
신용권, 『혼자 공부하는 자바』,한빛미디어, 2019

profile
기록하자기록해!

0개의 댓글