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

규원님의 프로필 이미지
규원

작성한 질문수

김영한의 실전 자바 - 중급 2편

문제와 풀이

Card 객체의 suit

작성

·

134

·

수정됨

0

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

[질문 내용]
이번 강의를 시청하고 enum을 제대로 공부를 안했구나 느껴서 다시 중급1편을 보고 왔는데도 Card 객체에서 suit를 생성자로 값을 주입하는걸 너무 이해가 안됩니다. enum타입은 상수라서 그냥 생성자를 이용해서 넣지않고 바로 사용하면 되는거 아닌가요? compareTo, toString에 사용하기 위해 생성자를 이용해서 주입을 하신건가요?

답변 1

0

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

질문 주신 내용만으로는 규원님께서 어떤 질문을 하고 계신 것인지 잘 감이 오지 않습니다.

먼저 문제와 풀이 참고에도 나와있듯

image.png

정답이 없으며 실행 결과 예시는 참고용입니다! 반드시 같은 답일 필요는 없습니다.

 

답안 예시를 보면서 말씀드리겠습니다.

Card는 숫자와 문양으로 이루어진 하나의 클래스라고 이해했고, 52개의 카드 모두 숫자 + 문양이 다 달라야 하기 때문에 생성자로 숫자와 문양을 받아 인스턴스를 생성한다고 보시면 될 것 같습니다.

답안에서 만약 생성자를 통해 문양을 받지 않는다고 하면 어떻게 문양이 다른 카드 인스턴스를 생성하고자 하시는 것일까요? 그리고 카드는 서로 정렬하기 위해 객체 간 크기를 비교할 수 있어야 하기 때문에 compareTo()를 구현해줄 필요가 있습니다. 그래서 말씀하신 것과 같이 Comparable<Card>를 구현하고 있습니다 🙂

영한님께서 해당 문제의 요구사항에 따라 만든 Card는 이랬습니다. 규원님의 Card는 다를 수 있습니다.

혹시 괜찮으시다면

enum타입은 상수라서 그냥 생성자를 이용해서 넣지않고 바로 사용하면 되는거 아닌가요?

이 부분에 대해서 부연 설명을 부탁드려도 될까요? 규원님은 문양을 따로 해서 구현했고 요구사항에 딱 들어맞는다면 그것도 답이 맞습니다 🙂

 

감사합니다.

규원님의 프로필 이미지
규원

작성한 질문수

질문하기