자바 메서드 오버로딩
Overloading(중복정의)이라는 것은 하나의 클래스 내에서 같은 이름을 가지는 메서드가 여러 개 정의되는 것을 말한다. 이것은 컴파일 시 컴파일러에 의해 각 메서드들이 구별되며 기준은 인자가 된다 . 인자의 타입 또는 갯수, 배치된 순서가 다를 경우 다른 메서드로 인식함.
[접근제한] [반환형] [메서드명] (자료형 인자1, 자료형 인자2, …){} --교체 가능--- 반드시 동일 ----- 반드시 다르게 ----- |
public class OverloadingMain { public void print(int n) { System.out.println("정수 n = " + n); }
public void print(double n) { System.out.println("실수 n = " + n); }
public void print(double n, long a) { System.out.println( "실수 n = " + n + ", 정수 a = " + a); }
public void print(long a, double n) { System.out.println( "정수 a = " + a + ", 실수 n = " + n); }
public static void main(String[] args) { OverloadingMain ot = new OverloadingMain(); ot.print(20); ot.print(5.6); ot.print(3.7,1234L); ot.print(1234L,5.8); } } |
이런 Overloading기법이 필요한 이유는 같은 목적으로 비슷한 동작을 수행하는 메서드들을 모아 이름을 같게 하면 프로그래머로 하여금 다양한 메서드들을 같은 이름으로 일관된 작업을 할 수 있다는 편리함이 있다.