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 값을 부여하는 식으로 프로그램을 구성하자.
'Java' 카테고리의 다른 글
향상된 for문 활용하기 (0) | 2024.01.19 |
---|---|
Thread에 대한 기초 개념 정리 (2) | 2024.01.17 |
Scanner 주의사항! nextInt() 와 nextLine()를 같이 쓰는 경우 (0) | 2024.01.12 |
Collection Framework - ArrayList 정리 (2) | 2024.01.08 |
연산자 정리 (2) | 2024.01.05 |