Java에서 Method (함수) 를 활용할 수 있습니다.

 

앞에서 기본적으로 main 함수안에 코드를 작성하였는데, main 앞에 void가 있습니다.

void 위치는 Method return 값의 타입을 의미하며, return 값이 없을경우 void로 표시합니다.

 

아래의 예시를 보면 getPowerByexp() Method는 return 값으로 int 형을 내보내고, main()의 경우 return 값이 없는 것을 확인 할 수 있습니다.

 

public class _04_ParameterAndReturn {
    public static int getPower(int number) {
        int result = number * number;
        return result;
        // return number * number
    }
    public static int getPowerByExp(int number, int exponent) {
        int result = 1;
        for (int i = 0; i < exponent; i++) {
            result *= number;
        }
        return result;
    }
    public static void main(String[] args) {
        // 전달값과 반환값이 있는 메소드
        int retVal = getPower(2);
        System.out.println((retVal)); // 2 * 2 = 4

        retVal = getPower(3);
        System.out.println(retVal); // 3 * 3 = 9

        retVal = getPowerByExp(3,3);
        System.out.println(retVal); // 3 * 3 * 3 = 27

        System.out.println(getPowerByExp(2,4)); // 2 * 2 * 2 * 2 = 16
    }
}

 

그럼 여기서 Java의 오버로딩 개념을 알아볼 수 있습니다.

 

Java에서는 Method를 만들때 return 값을 미리 정하여 생성합니다.

그럼 return 값이 다르고, Method 이름이 같은 경우 어떻게 될까요?

 

이때는 전달값(매개변수)의 타입과 갯수에 맞는 Method를 자동으로 찾아 실행시키는데 이것을 overLoading이라고 합니다.

 

public class _05_Overloading {
    public static int getPower(int number) {
        int result = number * number;
        return result;
        // return number * number
    }

    public static int getPower(String strNumber) {
        int number = Integer.parseInt(strNumber); // 문자열값을 뽑아서 int 로 변환
        return number * number;
    }

    public static int getPower(int number, int exponent) {
        int result = 1;
        for (int i = 0; i < exponent; i++) {
            result *= number;
        }
        return result;
    }

    public static void main(String[] args) {
        // 메소드 오버로딩
        // 같은 이름의 메소드를 여러 번 선언
        // 1. 전달값(매개변수)의 타입이 다르거나
        // 2. 전달값(매개변수)의 갯수가 다르거나
        // 3. 반드시 함수의 조건(타입)이 아닌 매개변수의 타입이나 갯수여야함
        System.out.println(getPower(3)); // 3 * 3 = 9
        System.out.println(getPower("4")); // 4 * 4 = 16
        System.out.println(getPower(3,3)); // 3 * 3 * 3 = 27
    }
}

 

'Java' 카테고리의 다른 글

Java - scope  (0) 2023.05.04
Java - class, instance, member 그리고 this  (0) 2023.05.04
Java - 배열  (0) 2023.05.04
Java - 반복문  (0) 2023.05.04
Java - 조건문  (0) 2023.05.04

+ Recent posts