매개변수의 개수나 타입이 조금씩 다르지만, 비슷한 기능을 하는 메소드가 여러 개 있을 수 있다.
이런 메소드가 각각 다른 이름으로 정의되어 있다면,
어떨 때 어떤 메소드를 사용해야 할지 구분하기 어려울 수 있다.
이러한 경우를 위해서
" 매개변수의 수가 다르거나, 매개변수의 타입이 다르다면" 동일한 이름으로 메서드를 여러 개 정의할 수 있다.
이를 메소드 오버로딩이라 한다.
메소드 오버로딩
매개변수의 유형과 개수가 다르게 하여 같은 이름의 메서드를 여러 개 가질 수 있다.
여기서 중요한 것은 타입과 매개변수의 수가 중요하다.
타입은 같았지만 매개변수가 달라졌기 때문에 가능했다.
매개변수의 수는 같지만 타입이 다르기 때문에 가능하다.
MyClass2.java
1. 정수를 2개를 받아들여서 그 정수값을 더해서 리턴하는 메소드
public int plus(int a, int b) {
return a + b;
}
2. 정수 값 3개를 받아들여서 그 정수값 3개 모두 더해서 리턴하는 메소드
public int plus(int a, int b, int c) {
return a + b + c;
}
3. 문자열 2개를 받아들여서 그 문자열을 결합해서 리턴하는 메소드
public String plus(String a, String b) {
return a + b;
}
예시) 오류 발생 - 여기서 포인트 ! 매개변수의 이름은 중요하지 않고 타입이 중요하다.
위처럼 변수명은 다르지만, 매개변수의 타입과 개수가 동일한 메소드를 또 정의할 수 없기 때문이다.
public int plus(int x, int y){
return x+y;
}
MethodOverloadExam.java
package Java02;
public class MethodOverloadExam {
// 오버로딩된 메소드 이용하기
public static void main(String[] args) {
// 해당 클래스가 만들어져 있어야하고
// 클래스타입 변수명 = new 클래스가 가지고 있는 생성자이름();
MyClass2 m = new MyClass2();
// 1. 정수형 매개변수 2개를 더하여 리턴하는 메서드
System.out.println(m.plus(5, 5)); // 매개변수.갖고있는 메서드
// 2. 정수형 매개변수 3개를 더하여 리턴하는 메서드
System.out.println(m.plus(5, 6, 7));
// 3. 문자열 결합하여 리턴하는 메서드
System.out.println(m.plus("a", "b"));
}
}
'PL(ProgrammingLanguage) > JAVA' 카테고리의 다른 글
패키지 (0) | 2021.10.09 |
---|---|
[프로그래머스] 생성자 오버로딩 실습 (복습필요) (0) | 2021.10.09 |
생성자 (Constructor) (0) | 2021.10.09 |
[프로그래머스]switch문 - 실습(1) (0) | 2021.10.09 |
2차원 배열(2 Dimensional Array) (0) | 2021.10.09 |