본문 바로가기
Programming/Java

[자바/Java] 메소드2 - 리턴, 오버로딩

by 코딩하는 랄로 2023. 9. 28.
728x90

Return 의미

Return은 Re + turn의 의미 그대로, 다시 돌려주다를 뜻한다. 그렇기 때문에 프로그래밍 언어에서 리턴은 실행의 결과로서 다시 돌려주는 값을 뜻한다.

 

메소드에서 리턴문을 만날경우, 다음과 같은 과정을 거친다.

  • 메소드를 호출한 곳으로 값을 리턴
  • 이 때에 메소드가 정의시 명시한 리턴타입의 값을 리턴(무조건)
  • 메소드 종료
  • 반환값을 저장하는 변수가 있을 경우 저장

 

 

 

오버로딩(Overloading)

자바에서 메소드에 대해서 다룰 때 나오는 중요한 개념 중 하나이다. Overloading이란, 메소드를 중복으로 정의할 수 있는 개념이다.

 

메소드의 중복 정의, 오버로딩을 하기 위해서는 다음과 같은 조건을 만족해야 한다.

  • 매개변수의 개수가 다르거나
  • 매개변수의 자료형이 다르거나
  • 매개변수의 순서가 다를 때

즉, 매개변수 리스트를 다르게 한 메소드로만 오버로딩이 가능한 것이다. 위의 조건을 보면 알 수 있듯이, 단순히 메소드의 리턴 타입만 다른 경우는 오버로딩을 허용하지 않는다.

 

 

장점

메소드 오버로딩을 사용하는 이유는 무엇일까?

 

그 이유로는 동일한 동작을 하는 메소드에 대해 매개변수만 달리하여 중복정의하면 이 메소드를 사용하는 입장에선 여러 종류의 이름을 외울 필요가 없어진다.

 

같은 동작을 하는 함수지만 단순히 매개변수만 다르다고 이름을 달리 해야 한다면, 개발자들이 외워야 하는 메소드들의 수가 기하급수적으로 늘어날 것이다.

 

메소드 오버로딩의 이러한 특징(하나의 이름으로 여러가지 기능을 할 수 있는 언어적 특징)을 자바에서는 '다형성'이라고 일컫고 매우 중요한 키워드 중 하나이다.

728x90