Java 메소드 형변환
메소드에도 명시적 형변환, 자동 형변환을 사용할 수 있다.
명시적 형변환
double타입의 값을 add 메소드 호출하여 인수로 사용하고 있다.
Java 코드
public class Double {
public static void main(String[] args) {
double num = 2.5;
printDouble(num);
}
public static void printDouble(int number) {
System.out.println("number = " + number);
}
}
Java 실행
java: incompatible types: possible lossy conversion from double to int
- 컴파일 에러가 발생하여 실행할 수 없다. 내용은 데이터 누락할 수 있다는 의미이다.
명시적 형변환을 사용하여 코드를 다시 실행시켜보도록 한다.
java 코드
public class Double {
public static void main(String[] args) {
double num = 2.5;
printDouble((int) num);
}
public static void printDouble(int number) {
System.out.println("number = " + number);
}
}
Java 실행
number = 2
printDouble((int) num);
명시적 형변환을 사용하여 int 형 인자를 전달하고 있다.
자동 형변환
호출 인자보다 메소드의 파라미터 타입이 큰 경우 자동 형변환을 사용 할 수 있다.
아래 타입들은 내림차 순으로 크다.
- int
- long
- double
Java 코드
public class Double {
public static void main(String[] args) {
int num = 5;
printDouble(num);
}
public static void printDouble(double number) {
System.out.println("number = " + number);
}
}
Java 실행
number = 5.0
- 자동 형 변환이 적용되어 코드를 실행할 수 있었다.
- 메소드 호출 인자
printDouble(num)
int형 변수num
전달한다. - 메소드를 선언한
printDouble(double number)
파라미터의 double형number
보다 전달받은 int형 변수num
가 작다.
- 메소드 호출 인자