Minwoo Dev.

[Java] 메소드 오버로딩 본문

Java

[Java] 메소드 오버로딩

itisminu 2023. 11. 17. 12:04
728x90
반응형
SMALL

메소드 오버로딩이란 여러 개의 메소드를 중복하여 사용하는 것을 의미한다.

여기서 중복하여 사용한다는 것은 매개변수, 즉 파라미터의 형식이 다른 여러 메소드를 중복할 수 있다는 것이다.

import java.math.BigInteger;
import java.util.Scanner;

public class test {
    public static void printUntill(int n) {
        for (int i = 1; i <= n; i++) {
            System.out.println(i);
        }
    }

    public static void printUntillStr(String n) {
        for (int I = 1; I <= Integer.parseInt(n); I++) {
            System.out.println(I);
        }
    }


    public static void main(String[] args) {
        printUntill(4);
        System.out.println("---------------------");
        printUntillStr("3");
    }
}

 

위 프로그램은 0부터 입력된 수까지 차례로 출력하는 프로그램이다.

입력값인 매개변수가 int형일 경우에는 printUntill 함수를, 매겨변수가 String형일 경우에는 printUntillStr 함수를 실행해야 한다.

 

하지만 프로그램의 실행 내용이 같은 내용을 의미한다면, 함수 이름을 같은 이름으로 설정할 수 있다.

이를 우리는 "메소드 오버로딩"이라고 한다.

 

import java.math.BigInteger;
import java.util.Scanner;

public class test {
    public static void printUntill(int n) {
        for (int i = 1; i <= n; i++) {
            System.out.println(i);
        }
    }

    public static void printUntill(String n) {
        for (int I = 1; I <= Integer.parseInt(n); I++) {
            System.out.println(I);
        }
    }


    public static void main(String[] args) {
        printUntill(4);
        System.out.println("---------------------");
        printUntill("3");
    }
}

 

메소드 오버로딩을 사용하면 프로그램이 자동으로 인식하여 함수를 실행한다.

그렇다면, 프로그램이 어떻게 자동으로 함수를 선택하는 지 궁금할 것이다.

그 비법은 "매개변수" 에 있다.

 

비법이자 메소드 오버로딩의 주의점들은 아래와 같다.

(변환값이 다른 경우에는 오버로딩 불가능.)

  • 전달값의 타입이 달라야 함
  • 전달값의 개수가 달라야 함

둘 중의 하나만 달라도 가능하고, 둘 다 달라도 된다. 

예를 들어 위의 printUntill은 매개변수(전달값)의 타입이 다른 경우이다. 

 

여기까지 메소드 오버로딩에 대하여 알아보았다.

 

 

728x90
반응형
LIST