Java/[inflearn] 자바 입문

[김영한_자바입문][9. 매서드] 반환타입과 매개변수가 다를 때_묵시적 형변환 (p.25)

줌인. 2024. 1. 19. 21:58
작은 데이터 타입(int)에서 큰 데이터 타입(double)으로 자동 형변환이 발생한다면,
반환 타입과 매개변수의 타입이 서로 다른 경우에도 문제가 없다.

 

 

 

[p.25 / 작성 코드] 반환타입 double, 매개변수 int인 코드

public class MethodEx1Ref1 {
    public static void main(String[] args) {

        System.out.println("평균값 : " + average(1,2,3));
        System.out.println("평균값 : " + average(15,25,35));
    }

    public static double average(int a, int b, int c) {
        int sum = a + b + c;
        double average = sum / 3.0;
        return average;
    }
}

 

int형 → double로 자동 형변환이 발생하는 코드이기 때문에 반환타입과 매개변수가 달라도 사용이 가능하다.

 

여기서 int 형 변수들로 이루어진 sum을 3.0으로 나누면, 자동으로 형변환이 발생하여 결과가 double로 변환된다.

이 경우, 정수형 변수와 실수형 상수의 연산은 실수형으로 자동 형변환되기 때문에 average 변수에 할당되는 값은

double이다.

 

따라서, 반환 타입과 매개변수 타입이 서로 다른 경우에도 자동 형변환이 가능하다면 문제가 되지 않는다.

이러한 형변환은 자바에서 "묵시적 형변환"이라고도 불리며, 작은 데이터 타입에서 큰 데이터 타입으로 변환될 때 

자동으로 수행된다.

또한 return으로 반환한 값이 double로 반환할 수 있게 타입이 변경되었기에 해당 코드는 문제가 없는 코드이다.

즉 작은 것 그릇의 물건 ---> 큰 그릇의 물건으로 옮기는 것이 쉽고 자연스러운 것과 동일시하게 보면 된다.

 

728x90