java에서 메소드 작성하는 방법부터 알아봅시다. 메소드는 동일한 이름으로 여러번
사용하는것을 오버로딩(method overloading)이라고 합니다.
그럼 메소드 오버로딩(method overloading)을 사용하기 위해서는 규칙이 있습니다.
※ 접근 지정자란?
메소드를 사용할때에는 접근 지정자를 선언해야 합니다. (public,private,protected, 디폴트) 입니다.
※ 리턴타입이란?
메소드를 사용할때내는 호출방법을 적시하셔야 합니다.(int, double, String 등) 특정값을 지정하지 않는다면 void을 선언하셔야 합니다.
※ 메소드의 이름?
메소드를 사용할때에는 메소드를 이름을 작성하서야합니다. java에서 메소드를 호출시 인자전달방식은 (call-by-value)입니다. call=by-value란 값에 의한 호출을 말합니다. 예제를 통해서 어떻게 메소드를 호출하는 아실수 있습니다.
메소드 사용 예제입니다.
public int getTotal(int a, int b){ return a+b} 란? 접근지정자는 public 이고
리턴타입은 int이며, 메소드 이름은 getTotal 그리고 인자값은(int a, int b) 전달을 받겠다는 뜻입니다. 그리고 { return a+b}는 public int로 전달한다는 뜻입니다. 만약 전달값이 없다면? public void getTotal(int a, int b){ } 작성하서야 합니다.
getTotal메소드로 여러번 사용하고 있습니다. 여기서 중요한 부분은
public int getTotal(int a, int b){ return a+b;}란?
접근 지정자는 public 이고 리터타입은 int 이며 메소드 이름은 getTotal이고 (int a, int b) 인자값으로 int a, int b 지정하며 {return a+b;} 는 public int(리턴타입)로 보낸다라는 뜻입니다. 만약 메소드가 특정값을 리턴하지 않는다면?
public void getTotal(int a, int b){} 작성하시면 됩니다.
★ 메소드 이름은 동일
★ 메소드 인자의 개수가 서로 다름
getTotal(int a, int b) 인자값 2개/ getTotal(int a, int b, int c) 인자값 3개
★ 메소드 이름은 같고 인자의 개수나 타입이 모든 같고 메소드 리턴타이비 다르면
오버로딩 실패입니다.
public int getTotal(int a, int b, int c){ return a+b+c;} 와 public double getTotal(int a, int b, int c){ return a+b+c;} 에서 getTotal이름은 같고 리턴타입인int, double 다르지만 인자값(int a, int b, int c)같기 때문에 오버로딩 실패입니다.