[Java] main 메서드가 void인데 리턴값 있는 메서드 호출? 이유와 동작 원리 설명
저는 처음 자바를 공부할 때, 왜 이 메인메서드의 void는 값을 반환하지 않는다고 하는데, 왜 메인 메서드안에 반환하는 값들이 들어가있을까? 궁금했는데요. 오늘은 그 해답을 글에서 파헤쳐보겠습니다!
자바에서 main 메서드는 프로그램의 시작점으로, 항상 void 타입으로 작성됩니다. 그런데 이 void 타입이 반환값을 처리할 수 없다는 오해가 있을 수 있습니다. 실제로 main 메서드 내에서 반환값을 가진 다른 메서드를 호출할 수 있습니다. 이 부분을 혼동할 수 있기 때문에, 이를 명확히 이해하는 것이 중요합니다.
void 타입이란?
먼저 void가 무엇인지 알아봅시다. void는 "값을 반환하지 않는다"는 의미입니다. 즉, main 메서드가 void 타입이라면, 이 메서드 안에서 값을 반환하는 일이 없다는 뜻입니다. 하지만, main 메서드가 값을 반환하는 메서드를 호출할 수 있다는 사실을 알고 있으면, 코드가 더 유연해집니다.
main 메서드가 void일 때, 반환값을 가진 메서드 호출 가능
main 메서드가 void 타입이라도, 그 안에서 값을 반환하는 메서드를 호출하여 값을 받아올 수 있습니다. 이는 main 메서드 자체는 반환값이 필요 없지만, 호출되는 다른 메서드는 값을 계산하고 반환할 수 있기 때문입니다.
예시 코드로 이해하기
코드 설명설명
calculateSum 메서드는 int 타입을 반환하는 메서드로, 1부터 입력값(limit)까지의 합을 구하여 반환합니다. 메인메서드 안에서 이 calculateSum메서드가 작동하지만, 이 메서드 자체는 반환을 하도록 설계되어있는 메서드라는 것입니다. main 메서드 자체는 void 타입이므로 값을 반환하지 않습니다. 하지만, calculateSum 메서드를 호출하여 반환된 합을 result 변수에 저장하고, 이를 출력합니다.이것을 우리는 main 메서드 내에서 void 타입이라도 값을 반환하는 메서드를 호출하여 반환값을 사용할 수 있다고 표현하는 것입니다.
왜 void 메서드가 값을 반환하는 메서드를 호출할 수 있나요?
- main 메서드가 void 타입이라도, main 메서드의 실행 흐름을 제어하는 코드가 다른 메서드를 호출하여 값을 받아오는 것은 가능합니다.
- main 메서드 내에서 값은 반환하지 않지만, 다른 메서드는 필요에 따라 값을 계산하고 반환할 수 있기 때문에, 그 값을 받아서 활용하는 것이죠.
반환값을 사용하는 이유
- main 메서드는 단순히 프로그램 실행을 시작하는 메서드일 뿐입니다. 이 메서드에서 값을 반환할 필요는 없으며, 다른 메서드에서 계산된 값을 활용하고 출력하는 방식으로 프로그램을 작성합니다.
- main 메서드 내에서 복잡한 연산을 처리하기보다는, 다른 메서드가 특정 작업을 처리하고 그 값을 받아서 사용하는 것이 좋습니다.
결론
- main 메서드가 void 타입이어도, 그 안에서 값을 반환하는 메서드를 호출하여 결과를 활용할 수 있습니다.
- void는 값을 반환하지 않는 메서드라는 뜻이지, 반드시 반환값을 처리할 수 없는 것은 아닙니다.
- 반환값을 가진 메서드는 main 메서드 외부에 작성되어 호출되어 값을 계산하고 반환할 수 있습니다.
이해가 되셨나요? 자바에서 void 메서드와 반환값을 다루는 방식은 굉장히 유연하기 때문에, 이를 잘 활용하면 훨씬 깔끔하고 효율적인 코드를 작성할 수 있습니다!
'컴퓨터 > 자바' 카테고리의 다른 글
[Java] 자바의 for문 구조 완벽 이해하기! (feat. for 문 실행흐름, 작동원리 쉽게 정리) (0) | 2025.04.02 |
---|---|
[Java] 왕초보 객체지향프로그램 총정리 - 클래스 정의, 생성자, 메소드, 객체 생성 쉽게 설명 (0) | 2025.03.31 |
[Java] 자바 객체 생성 과정 이해하기 - 자동차(Car) 객체를 예제로 살펴보기 (0) | 2025.03.30 |
[Java] 자바 객체지향 프로그래밍(OOP)의 원리 이해하기 (0) | 2025.03.30 |
[Java] 자바에서 부동소수점 연산이란? (feat. 자바에서 실수 계산 시 발생하는 오차의 비밀) (1) | 2025.03.29 |