inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

void의 정확한 의미를 모르겠어요

해결된 질문

4620

liltjay

작성한 질문수 25

1

안녕하세요 챕터 6 부분을 공부하고 있는데 void를 쓰는 경우와 안쓰는 경우의 차이가 잘 와닫지 않습니다. 리턴값이 없으면 void를 쓰고, 리턴값이 있으면 void를 안쓴다고 알고 있는데 리턴값부터 이해가 잘 가지 않네요!

예를 들어서

// 호텔 주소 public static String getAdress() {
return "서울시 어딘가";
}

셋째 줄에 sout "서울시 어딘가" 를 쓰는 것은 무엇이 다른건지요?

감사합니다 :)

객체지향 java oop

답변 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);

마치 햄버거 가게에서 햄버거를 주문하면 직원이 햄버거를 만들어서 주는 것과 같습니다. 햄버거를 주문(메소드 호출)하게 되면 주방(메소드 내부)에서 햄버거를 만들고(메소드 동작 수행) 만들어진 햄버거를 받게 되는 것(반환값)이죠.

학습에 도움되시길 바라겠습니다 😊
감사합니다.

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

146

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

119

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

72

1

사고력 키우는 법이 어떤게 있나요?

0

94

2

getter setter

0

103

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

80

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

76

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

115

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

117

2

응용이 어렵습니다.

0

206

2

IntelliJ가 보이지 않습니다.

0

187

3

JDK 버전 문의

0

130

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

123

2

Iterator 문의

0

105

1

코드 순서 문의

0

143

1

클래스 메소드

0

150

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

120

2

HashMap

0

81

2