학원 정리/자바

메소드 중복정의(Method Overloading)

csatlemin 2022. 9. 27. 23:31

- 메소드 중복정의는 하나의 클래스안에 같은 이름의 메소드를 여러 개 정의하는 것이다.
- 하나의 클래스에 동일한 이름의 메소드를 여러 개 정의하기 위해서는 매개변수들이 서로 달라야 한다.
- 메소드 중복정의 조건
구분     조건     설명
반환타입 상관없음 -
메소드명 동일     -
매개변수 서로다름 매개변수 타입, 매개변수 갯수

- 매개변수의 이름을 서로 다르게 정의하는 것은 메소드 중복정의의 조건이 아님

메소드 중복정의가 필요한 이유
- 유사한 기능은 동일한 이름으로 정의하자.
- 매개변수의 종류만 다르고 구현내용이 비슷한 것은 동일한 이름으로 정의하자.
    · 유사한 기능이 동일한 이름을 가지기 때문에 해당 기능을 사용하기 쉬워진다.


System.Out.println();
System.Out.println(100);
System.Out.println("가");
System.Out.println(3.14);
System.Out.println(true);
System.Out.println("안녕하세요");

- 화면에 값을 출력하는 기능은 값의 타입에 상관없이 System.Out.println() 메소드를 사용했다.
- 이유 : 메소드 중복정의

- 메소드 중복정의의 최종 목적
    · 비슷한 작업은 일관되게 하나의 이름으로 실행하자!


public int plus(int x, int y) {
    System.out.println("정수 + 정수");
    int z = x + y;
    return z;
}

public double plus (int a, double b) {
    System.out.println("정수 + 실수");
    double c = a + b;
    return c;
}

public int plus (int a, int b, int c) {
    System.out.println("정수 + 정수 + 정수");
    int d = a + b + c;
    return d;
}

public double plus(double a, int b) {
    System.out.println("실수 + 정수");
    double c = a + b;
    return c;
}

public double plus (double x, double y) {
    System.out.println("실수 + 실수");
    double z = x + y;
    return z;
}