inflearn logo
강의

講義

知識共有

ナドコーディングのJava基本編 - フルコース (20時間)

メソッド

8강. 클래스 강의 중 return 값을 갖는 메소드

367

ruddhrhdwn

投稿した質問数 3

0

 안녕하세요,

8강. 클래스 강의 중 return 값을 갖는 메소드 관련하여 질문 드립니다.

 

class에서 return값을 갖는 getVideoFileCount 메소드를 정의하고, main 영역에서 호출 시에

int fileCount = b1.getVideoFileCount(type: 1); 처럼

b1.getVideoFileCount의 값을 저장하는 int fileCount 변수를 따로 정의해주었는데 그 이유가 무엇인지 궁금합니다. 만약 이와 같이 저장해주는 변수를 지정하지 않을 경우 어떻게 되는지, 혹시 return 값이 있는 메소드는 대게 저장하는 변수를 설정해주는 것인지 궁금합니다.

 

감사합니다.

java oop

回答 1

1

nadocoding

※ 과거에 있었던 유사한 질문에 대한 답변글을 일부 수정하여 제공합니다. 참고 부탁드려요 😉
https://www.inflearn.com/questions/797229

안녕하세요?
비교를 위해서 반환값이 없는 insertMemoryCard() 메소드와 반환값이 있는 getVideoFileCount() 메소드를 먼저 적어보겠습니다.

void insertMemoryCard(int capacity) {
    System.out.println("메모리 카드가 삽입되었습니다.");
    System.out.println("용량은 " + capacity + "GB 입니다.");
}

int getVideoFileCount(int type) {
    if (type == 1) {
        return 9;
    }
    else if (type == 2) {
        return 1;
    }
    return 10;
}

getVideoFileCount() 앞에 적힌 int 는 반환형이며 이 메소드는 동작을 수행 하고 나서 정수형 값을 반환하게 됩니다. 이와 같이 반환값이 존재하는 메소드의 경우 보통은 메소드를 호출하는 쪽에서 반환값을 받아서 계속 사용을 합니다. 그렇기 때문에 반환값이 없는 insertMemoryCard() 메소드는 호출하는 쪽에서 별도의 변수를 선언하지 않았고, 정수형 값을 반환하는 getVideoFileCount() 메소드는 앞에 변수를 선언하였습니다.

b1.insertMemoryCard(256);

int fileCount = b1.getVideoFileCount(1);

메소드 내에서 수행된 동작의 결과를 반환받아서 계속 사용하기 위해서는 이렇게 해주셔야 합니다. 그러나 수행된 동작의 결과를 호출한 쪽에서 굳이 사용하지 않아도 되는 경우라면 변수를 선언하지 않아도 문제가 되지는 않습니다.

가령, 어떤 식당에서 이벤트를 한다고 해보겠습니다. 이벤트 내용은 손님이 식사를 하고 나서 영수증에 연락처를 기입해서 응모함에 넣으면 추첨을 통해 식사권을 주는 것인데요. 이벤트에 참여를 원한다면 영수증이 필요하므로 계산을 한 뒤에 영수증을 반환받아야 합니다. 그래야 연락처를 기입하고 응모함에 넣을 수 있게 되는거죠.
하지만 잠깐 대한민국에 여행을 온 외국인 관광객 손님이라면 아마 식사권은 필요가 없을 겁니다. 추첨을 하기도 전에 귀국할 수도 있을테니까요. 이 경우라면 식당 사장님이 "영수증 드릴까요?" 라고 물어보더라도 필요가 없으므로 "버려주세요" 라고 할 수도 있을 겁니다.
즉, 반환값이 있는 메소드임에도 불구하고 반환값을 사용하지 않아도 되는 경우라면 굳이 새로운 변수로 그 값을 받을 이유가 없는거죠. 하지만 식당을 자주 방문하는 손님이라면 반드시 새로운 변수로 그 값(영수증)을 받아서 사용할 것입니다.

궁금증 해결에 도움되었으면 좋겠습니다 😊
감사합니다.

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

0

136

2

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

0

111

2

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

0

70

1

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

0

91

2

getter setter

0

101

2

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

0

78

1

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

0

75

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

114

2

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

0

152

2

영상이 재생이 안됩니다.

0

166

3

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

0

114

2

응용이 어렵습니다.

0

203

2

IntelliJ가 보이지 않습니다.

0

182

3

JDK 버전 문의

0

128

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

120

2

Iterator 문의

0

104

1

코드 순서 문의

0

139

1

클래스 메소드

0

148

2

Quiz_05 관련 질문드립니다 !

0

117

2

다운로드가 안됩니다

0

165

2

다형성

0

118

2

HashMap

0

80

2