인프런 커뮤니티 질문&답변

kwldusrnclf님의 프로필 이미지
kwldusrnclf

작성한 질문수

김영한의 실전 자바 - 기본편

문제와 풀이

문제2 풀이 질문

작성

·

212

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
public class Account { int balance; int deposit(int amount) { return balance += amount; } int withdraw(int amount) { if (balance >= amount) { balance -= amount; } else { System.out.println("잔액 부족"); } return balance; } }

 

1) Account 클래스의 입금, 출금 메서드를 void가 아닌 int로 선언해서 풀었습니다. 동작은 문제가 원하는대로 하는데 이렇게 풀어도 되나요?

 

2) void를 써야할 때와 쓰지 않아야 할 때를 구분하기 어렵습니다.

사각형 문제와 다르게 계좌 문제는 Account 클래스 안에 balance가 멤버 변수로 선언되어 있고 그 값을 바꾸는 것이기 때문에 void를 써서 return을 따로 해주지 않아도 되는게 맞나요?

답변 1

0

안녕하세요. kwldusrnclf님, 공식 서포터즈 y2gcoder입니다.

1) 네 맞습니다!

2) 말씀하신 것이 맞습니다. 저는 반환타입이 있는 것과 없는 것은 주로 메서드의 용도를 생각하면서 결정하는 편입니다. 객체 내의 필드의 상태만 바꾸는 것이라면 void로 해당 필드를 꺼내서 사용해야 한다면 반환타입을 지정해주는 식으로 결정합니다 :)

감사합니다.

kwldusrnclf님의 프로필 이미지
kwldusrnclf

작성한 질문수

질문하기