메서드 시그니처(Method Signature)
- 메서드 시그니처란 메서드명과 매개변수의 자료형을 의미
- 메서드의 반환 타입은 해당되지 않는다.
메서드 오버로딩(Method Overloading)
- JVM은 메서드명이 동일해도 매개변수의 자료형 또는 개수가 다르면 다른 메서드라고 인식한다.
- 위의 특징을 이용하여 하나의 클래스 안에 동일한 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩이라 한다.
public class Main {
public static void main(String[] args) {
MyClass mc = new MyClass();
mc.print(1);
mc.print(1, 10);
mc.print('X');
mc.print("메서드 오버로딩");
}
}
class MyClass {
public void print(int x) {
System.out.println("정수형 : " + x);
}
public void print(int x, int y) {
System.out.println("정수형 : " + x + "," + y);
}
public void print(char x) {
System.out.println("문자형 : " + x);
}
public void print(String s) {
System.out.println("문자열 : " + s);
}
}
메서드 오버로딩을 하는 이유
- System.out.println()메서드는 인자로 어떤 자료형의 인자를 전달하여도 출력한다.
- 만약 메서드 오버로딩을 사용하지 않는다면 입력매개변수의 자료형에 따라 메서드명을 전부 다르게 해야 한다.
(예 : printlnInt(int x), printlnChar(char x), printlnLong(long x), ....) - 즉, 입력매개변수가 다른 여러 경우의 수를 하나의 메서드로 해결하기 위해 메서드 오버로딩을 사용한다.
'Langauge > Java-basic' 카테고리의 다른 글
[Java] this키워드와 this() 메서드 (0) | 2022.07.21 |
---|---|
[Java] 생성자 (0) | 2022.07.20 |
[Java] 필드와 메서드 (0) | 2022.07.18 |
[Java] 클래스와 객체 (0) | 2022.07.13 |
[Java] 배열 (0) | 2022.07.11 |