<div>package ObjectEx2;</div> <div>public class Decktest {<br> <br> class Card{<br> static final int KIND_MAX=4; //카드 무늬의 수<br> final static int NUM_MAX=13; //무늬별 카드 수 <br> <br> static final int SPADE=4;<br> static final int DIAMOND=3;<br> static final int HEART=2;<br> static final int CLOVER=1;<br> <br> int kind;<br> int number;<br> <br> Card(){<br> this(SPADE,1);<br> }<br> Card(int kind,int number){<br> this.kind=kind;<br> this.number=number;<br> }<br> <br> public String toString(){<br> String kind="";<br> String number="";<br> <br> switch(this.kind){<br> case 4:<br> kind="SPADE";<br> break;<br> case 3:<br> kind="DIAMOND";<br> break;<br> case 2:<br> kind="HEART";<br> break;<br> case 1:<br> kind="CLOVER";<br> break;<br> default:<br> }<br> switch(this.number){<br> case 13:<br> number="K";<br> case 12:<br> number="Q";<br> case 11:<br> number="J";<br> default:<br> number=this.number+"";<br> }<br> return "kind:"+kind+",number:"+number;<br> }<br> }<br> class Deck{<br> final int CARD_NUM=52; //카드의 개수<br> Card c[]=new Card[CARD_NUM];<br> <br> Deck(){ //Deck의 카드를 초기화시킨다.<br> int i=0;<br> <br> for(int k=Card.KIND_MAX; k>0; k--){<br> for(int n=1; n<Card.NUM_MAX+1;n++){<br> c[i++]=new Card(k,n);<br> <br> }<br> }<br> }<br> Card pick(int index){ //지정된 위치(index)에 있는 카드 하나 선택<br> if(0<=index && index<CARD_NUM)<br> return c[index];<br> else<br> return pick();<br> }<br> <br> Card pick(){ //Deck에서 카드 하나를 선택한다.<br> int index=(int)(Math.random()*CARD_NUM);<br> return pick(index);<br> }<br> void shuffle(){ //카드의 순서를 섞는다.<br> for(int n=0; n<1000; n++){<br> int i=(int)(Math.random()*CARD_NUM);<br> Card temp=c[0];<br> c[0]=c[i];<br> c[i]=temp;<br> }<br> }<br> }<br> <br> <br>}<br></div> <div> </div> <div> </div> <div> </div> <div> </div> <div> </div> <div> </div> <div> </div> <div>// TODO Auto-generated method stub<br> Deck d=new Deck(); //카드 한벌(Deck)를 만든다<br> Card c=d.<font>pick</font>(0); //섞기 전에 제일 위에 카드를 뽑는다.<br> System.out.println(c); //System.out.println(c.toString());와같다<br> d.<font>shuffle</font>();<br> c=d.<font>pick</font>(0);<br> System.out.println(c);</div> <div> </div> <div>빨간줄에 오류가 납니다 도대체 이유를 모르겠습니다. </div> <div> </div> <div>제가 해석하기에 </div> <div>Deck d=new Deck(); ->메인에서 Deck클래스를 참조해 d라는 객체를 만듭니다.</div> <div>Card c=d.<font color="#ff0000">pick</font>(0) <- Card c의 뜻을 잘모르겠습니다. Card 클래스에 정보를 가진 c에 pick 메서드를 사용해 맨위에 카드를 저장하는 건가요?</div> <div>System.out.println(c); //System.out.println(c.toString());와같다 ->c를 출력합니다<br>d.<font>shuffle</font>();->shuffle이란 메서드를 이용하여 카드를 섞습니다.<br> c=d.<font>pick</font>(0);->섞은 후 맨위에 카드를 뽑습니다.<br> System.out.println(c);->c를 출력합니다.</div> <div> </div> <div>오류가 왜 나는지 잘 모르겠습니다. 책대로 똑같이 했고 </div> <div>c라는 객체가 만들어지는걸로 보아 pick함수를 못읽는거같은데 </div> <div>이유를 잘모르겠습니다 ㅠㅠ.</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.