프로그래밍/java

[자바JAVA] 오버로딩 (Overloading)

pupu91 2022. 7. 7. 19:00
반응형

 

1 . 오버로딩

  • 자바에서는 파라미터 갯수가 다르면 다른 메소드로 인식을 한다.
  • 동일한 메소드명으로 다양한 종류의 매개변수에 따라 다르게 처리해야하는 것을 관리하기 위해 사용하는 기술
  • 동일한 메소드명의 매개변수인 타입, 개수, 순서를 다르게 작성 (메소드의 시그니처가 다르지만 메소드 명은 같게 함)

 

 

2 . 오버로딩의 사용 이유

 

  • 동일한 이름으로 다양한 종류의 매개변수에 따라 처리해야 하는 여러 메소드를 동일한 이름으로 관리하기 위해 사용
반응형

3 . 오버로딩의 조건

  • 시그니쳐 중 메소드 이름은 동일하게 작성하고 파라미터 선언부를 다르게 작성 해야 오버로딩이 성립됨
메소드의 시그니쳐? 메소드의 메소드명과 파라미터 선언 부분
ex) public void mehod(int num) {}
=> method(int num) 부분이 시그니처임.

.

  • 오버로딩 성립 조건 확인
public void test() {}

(1) 메소드 시그니처가 동일한 경우 compile error 발생
public void test() {} (x) 

(2) 접근제한자는 메소드 시그니처에 해당하지 않음
private void test(){} 

(3)반환형은 메소드 시그니처에 해당하지 않음
public int test(){ return 0;) (x) 

(4) 매개변수 이름은 메소드 시그니처에 영향 x 에러
 public void test(int num) {} <- 확인용 기준메소드
 public void test(int num2){} (x) 

(5) 매개변수의 갯수에 따른 오버로딩 성립 
 public void test(int num1, int num2) {}

(6) 매개변수 타입 변화에 따른 오버로딩 성립 
 public void test(int num, String name) {}
 
(7) 매개변수 순서 변화에 따른 오버로딩 성립  
 public void test(String name, int num) {}

 

반응형