해결된 질문
작성
·
3.2K
·
수정됨
답변 1
3
안녕하세요?
메소드는 처음 접하면 누구나 헷갈리게 마련입니다 😆 저도 그랬어요.
메소드의 생김새는 대략 이렇습니다.
반환형 메소드명(전달값) {
... 어떤 동작 ...
return 반환값;
}
1) 반환값이 있는 메소드
메소드 내부에서 어떤 동작을 수행하고 나서 뭔가를 반환한다면, 반환형 위치에는 반환하려는 자료형 (int, float, String 등) 을 적어주면 됩니다. 그리고 return 뒤에는 반환하려는 값을 넣어주면 되구요.
2) 반환값이 없는 메소드
메소드 내부에서 어떤 동작을 수행하고 나서 아무것도 반환하지 않는다면, 반환형 위치에는 '비어 있다' 는 의미의 void 를 적어주면 됩니다. 그리고 이 경우 return 구문은 적지 않아도 되죠.
호텔에 전화를 걸어서 "주소가 어떻게 되나요?" 라고 물어본다면 우리는 당연히 직원으로부터 주소 정보를 안내받기를 기대할 것입니다. 이게 메소드에서는 반환값이며
String getAddress() {
return "서울시 어딘가";
}
라는 코드 중 return 에 의해 "서울시 어딘가" 라는 주소를 알 수 있게 됩니다. 즉 메소드를 호출한 곳에서 주소값을 반환받아서 사용할 수 있게 되는 거죠.
만약 호텔 전화번호를 잘못 눌러서 없는 전화번호라면 "잘못된 전화번호입니다. 확인 후 다시 걸어주세요" 라고 한 뒤 전화는 자동으로 끊어질 것입니다. 이때는 수화기 너머로 어떤 정보를 기대할 수 있는 상황은 아니죠.
void wrongNumber() {
System.out.println("잘못된 전화번호입니다. 확인 후 다시 걸어주세요.");
}
이 경우에는 이렇게 일방적인 통보식의 동작만 하고 별다른 반환값은 없습니다. 그래서 return 도 필요 없으며 더불어 반환형에는 void 로만 적어주면 되는 것이죠.
반환값이 있는 메소드는 main( ) 영역에서 이 메소드를 호출하여 특정 동작 수행 및 반환값을 받아서 main( ) 영역에서 계속 사용할 수 있도록 합니다. 그래서 아래와 같이 getAddress() 메소드로부터 받은 주소 정보를 address 변수에 담고 있다가 System.out.println( ) 문에서 사용할 수 있는 것입니다.
String address = getAddress();
System.out.println("호텔 주소 : " + address);
마치 햄버거 가게에서 햄버거를 주문하면 직원이 햄버거를 만들어서 주는 것과 같습니다. 햄버거를 주문(메소드 호출)하게 되면 주방(메소드 내부)에서 햄버거를 만들고(메소드 동작 수행) 만들어진 햄버거를 받게 되는 것(반환값)이죠.
학습에 도움되시길 바라겠습니다 😊
감사합니다.