[ 메서드 ]
일련의 코드 블록으로 메서드를 활용해서 코드를 줄일 수 있음
메소드와 함수는 유사한 개념이지만, 프로그래밍 언어의 패러다임에 따라 약간의 차이가 있음
객체 지향 프로그래밍에서는 주로 메소드를 사용
절차 지향 프로그래밍이나 함수형 프로그래밍에서는 함수를 사용
하지만 이 둘을 동일하게 취급할 수도 있음
[ 메서드 구조 ]
접근제한자 메서드에 접근할수 있는 범위를 지정
리턴타입 메서드가 반환하는 값의 타입을 고려해야만 한다. 반환 값이 없을 경우 void를 사용
메서드명 호출하기 위해 사용하는 이름
파라미터 매개변수는 메서드 선언부에 지정되며 메서드가 호출될 때 전달되는 값을 받아들이기 위한 역할
이를 통해 메서드는 호출될 때마다 다양한 입력 값을 받아들이고, 해당 값들을 기반으로 작업을 수행할 수 있음
void 타입
그 외 리턴 타입
객체지향 프로그래밍에서는 Void 이 외의 리턴타입을 적극적으로 활용하여 기능들을 잘게 세분화 시키는게 효율적이다.
객체지향 설계 원칙 중 하나인 단일 책임 원칙(Single Responsibility Principle)을 준수하여
메서드가 한 가지 역할만 수행하도록 함으로써 객체 간의 의존성을 낮추고 재사용성을 높일 수 있다.
특정한 상황에서 함수의 로직이 더이상 실행되지 않았으면 하는 경우가 있다.
예를 들어 체력이 5가 있는데 공격할때마다 1씩 깍이는 기능을 만들었다고 가정해보자.
이렇게 공격할때마다 계속 체력이 감소한다면
체력이 0 일때 공격하더라고 체력은 - 로 계속 감소될 것이다.
이럴때 return 을 활용한다.
함수의 맨 위에 추가해 보자
실행하면 이번에는 아무런 실행이 되지 않는 것을 볼 수 있다.
return 은 해당 코드 밑에 있는 모든 기능을 캔슬하고 함수를 종료한다.
조건에 의해서만 return 이 동작하도록 만들어보자
함수를 활용할때 보면 변수에 값을 입력할때도 활용했던 상황들이 있다.
그렇다면 우리가 만들었던 함수도 변수에 저장할 수 있을까?
우리가 만든 함수는 저장하려면 빨간줄 생기면서 에러가 발생하게 된다.
함수의 결과를 변수에 저장하고 싶다면 return 을 이용해야한다.
실행하면 보상을 주는 함수를 만들어 보자.
주의 사항
[ 메서드 오버로딩 ]
메서드명은 같지만 동작은 다른 메서드
메서드의 기능이나 작업은 동일하지만 입력값에 따라 다르게 동작해야 할 때 사용
[ 재귀 호출 ]
자기 자신을 호출하는 메서드
주의해야 할 점은 종료 조건을 명확히 정의해야 한다.
종료 조건을 만족하지 못하면 무한히 재귀 호출이 반복되어 스택 오버플로우 등의 오류가 발생할 수 있다.