본문 바로가기

백엔드/나도코딩 자바

[나도코딩 자바 챕터6] OverLoading 메소드 오버로딩? 문자열을 정수로 Integer.parseInt도 써보자.

OverLoading 메소드 오버로딩이란?

이름이 같은 여러 메소드를 만드는 것이다

전달값이 다른(정수형,문자형) 각각 메소드를 이름을 다르게 구분하지 않고

같은 이름으로 메소드를 정의할 수 있는 것이다.

// 메소드 오버로딩 (똑같은 이름의 메소드를 여러번 중복 가능!!)
// 같은 이름의 메소드를 여러 번 선언하는 것을 말한
// 전달값의 타입이 다르거나
// 전달값의 갯수가 다르거나
// 그럼 메소드 오버로딩이 가능합니다.
// 반환형이 다른 형태로는 메소드 중복 불가임 (int != double)

 

메소드 안에 정수값이 아닌 문자열도 넣을 수 있다.

getPower (int number)가 아닌

getPowerStr (String number)값으로 파라미터를 정의해준다.

public static int getPowerStr(String strNumber){
    int number = Integer.parseInt(strNumber); // 문자열을 정수로
    return number * number;

Integer.parseInt를 문자열 값을 정수로 변환하는 기능을 써서

반환값  return number * number; 해주자.

메소드 호출해보자

System.out.println(getPowerStr("4")); // 4 * 4 = 16

16이 나온다.

 

자 진짜 메소드 오버로딩을 봐보자.

아까는 문자열 메소드가 getPowerStr였는데

메소드 오버로딩을 위해 getPower로 바꾸어보았다.

그래도 오류가 나지 않고 정상적으로 실행이 된다.

.

.

.

.

.

.

.

 

 

메소드를 하나 더 만들어서 실행해보자.

지수값을 연산하는 메소드 getPower를 만들었다.

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

마찬가지로 출력해보면

27이 나온다.