✅ 메서드 시그니처(Method signature)란?
Java에서 메서드 시그니처는 메서드의 정의에서 메서드 이름과 매개변수 리스트의 조합을 말합니다. 메서드 이름과 매개변수 리스트가 중요한 이유는 메서드의 오버로딩과 메서드 시그니처 추상화 때문입니다. 메서드 시그니처 추상화는 나중에 배울 개념이므로 간단하게 오버로딩 때문에 중요하다고 이해하고 있으면 될 것 같습니다. Java 컴파일러는 메서드 이름과 매개변수 리스트를 통해 메서드 간의 차이를 식별한다.
public class MyClass {
public int calculateSum(int a, int b) {
return a + b;
}
public void printMessage(String message) {
System.out.println(message);
}
public static void main(String[] args) {
MyClass obj = new MyClass();
int sum = obj.calculateSum(2, 3);
obj.printMessage("Hello, world!");
}
}
위 코드에서는 MyClass
라는 클래스가 선언되어 있습니다. MyClass
에는 calculateSum()
과 printMessage()
라는 두 개의 메서드가 정의되어 있습니다.
➡️ calculateSum()
메서드의 시그니처는 다음과 같습니다.
- 이름: calculateSum
- 매개변수 개수: 2
- 매개변수 타입: int, int
- 반환 타입: int
따라서 calculateSum()
메서드의 시그니처는 calculateSum(int, int): int
로 표현할 수 있습니다.
➡️ printMessage()
메서드의 시그니처는 다음과 같습니다.
- 이름: printMessage
- 매개변수 개수: 1
- 매개변수 타입: String
- 반환 타입: void (반환 값이 없음)
따라서 printMessage()
메서드의 시그니처는 printMessage(String): void
로 표현할 수 있습니다.
메서드 시그니처는 메서드 오버로딩(Overloading)과 관련하여 중요한 역할을 합니다. 같은 클래스 내에서 메서드 이름은 동일하지만 시그니처가 다른 여러 개의 메서드를 선언할 수 있습니다. 이를 통해 매개변수의 타입, 개수, 순서 등을 다르게 하여 같은 이름의 메서드를 다양하게 활용할 수 있습니다.
Uploaded by N2T