Java

Return 값을 굳이 부여하는 이유

OneMoreThing 2024. 1. 16. 21:07

return 값에 대하여...

자바로 프로그래밍을 하다보면 메소드를 만드는 과정에서 리턴값을 항상 고민하게 된다. 아직 프로젝트 경험이 적어서 그런지 return 값이 없이 void 로 작업하는게 흐름상 맞는 것 같은데 예제 코드나 정답 코드들을 보면 굳이 return 값을 부여하는 경우가 있다. 이에 대한 의문에 대해 튜터님과 의논을 한 결과 이는 확장성 문제와 연관시킬 수 있음을 알 수 있었다.

 

return 값과 확장성

생각해보면 리턴값이 void 인 경우는 해당 메소드를 활용하는 방법이 딱 한가지로 결정된다. 예를 들면, 클래스 내부의 값을 세팅한다거나, 콘솔창에 값을 출력하는 것들을 예로 들 수 있다. 하지만 만약 리턴값을 부여하게 된다면 void 로도 동작이 가능하고 추가적으로 리턴값을 변수에 할당하여 다양한 작업으로 발전시킬 수 있다. 간단한 예제를 통해 이해를 해보자.

 

//void 의 예시
public void parseFirstNum(String firstInput) throws Exception{
    if(!Pattern.matches(NUMBER_REG,firstInput)){
        throw   new BadInputException("정수값");
    }
    int fNum = Integer.parseInt(firstInput);
    this.calculator.setFirstNumber(fNum);
}

//객체를 return 하는 예시
public Parser parseFirstNum(String firstInput) throws Exception{
    if(!Pattern.matches(NUMBER_REG,firstInput)){
        throw   new BadInputException("정수값");
    }
    int fNum = Integer.parseInt(firstInput);
    this.calculator.setFirstNumber(fNum);

    return this;
}

//함수의 사용예
parser.parseFirstNum(firstNumber); // return 타입에 여부에 관계없이 동작 가능
Parser parseExample = parser.parseFirstNum(firstNumber); //void 타입의 경우 불가능!

 

위의 예제를 보면 알 수 있듯이, void의 경우는 그냥 리턴값을 할당하지 않으면 구현할 수 있기 때문에, 추가적인 확장성을 위해 return 값을 부여하는 식으로 프로그램을 구성하자.