메소드 중복정의(Method Overloading)
- 메소드 중복정의는 하나의 클래스안에 같은 이름의 메소드를 여러 개 정의하는 것이다.
- 하나의 클래스에 동일한 이름의 메소드를 여러 개 정의하기 위해서는 매개변수들이 서로 달라야 한다.
- 메소드 중복정의 조건
구분 조건 설명
반환타입 상관없음 -
메소드명 동일 -
매개변수 서로다름 매개변수 타입, 매개변수 갯수
- 매개변수의 이름을 서로 다르게 정의하는 것은 메소드 중복정의의 조건이 아님
메소드 중복정의가 필요한 이유
- 유사한 기능은 동일한 이름으로 정의하자.
- 매개변수의 종류만 다르고 구현내용이 비슷한 것은 동일한 이름으로 정의하자.
· 유사한 기능이 동일한 이름을 가지기 때문에 해당 기능을 사용하기 쉬워진다.
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;
}