카드 게임을 만들고 카드 클래스와 데크 클래스를 준비하면 괜찮습니다. 그러나 갑판의 메서드 makeDeckFull을 실행하려고하면 출력이 표시됩니다 : invalidnumberinvalidnumber. ..Bluej ArrayList 추가
나는 showDeck 방법을 사용할 때 그때 (내가 무슨 뜻인지 모르거나 그것을 해결하는 방법) 대신에 "마음", 1 카드 597f13c5 @의이 참조
어떤 도움이 될 것이다 친절하게 감사드립니다 : 아래 코드.
갑판 등급 :
import java.util.ArrayList;
public class Deck
{
private ArrayList<Cards> deck;
private int index;
public Deck()
{
deck = new ArrayList<Cards>();
}
public void makeDeckFull()
{
Cards h1 = new Cards("Hearts", 1);
Cards h2 = new Cards("Hearts", 2);
Cards h3 = new Cards("Hearts", 3);
deck.add(h1);
index ++;
deck.add(h2);
index ++;
deck.add(h3);
index ++;
//Rest of these is left out to conserve space
}
public void showDeck()
{
System.out.println(deck);
}
카드 클래스 :
public class Cards
{
private String HEARTS = "Hearts";
private String CLUBS = "Clubs";
private String DIAMONDS = "Diamonds";
private String SPADES = "Spades";
public int number;
public String suit;
public Cards()
{
suit = "unknown suit";
number = 0;
}
public Cards(String suit, int number)
{
setSuit(suit);
setNumber(number);
}
public void setCard(String suit, int number2)
{
setSuit(suit);
setNumber(number2);
}
public void setSuit(String newSuit)
{
if(
(newSuit.equalsIgnoreCase(HEARTS)) ||
(newSuit.equalsIgnoreCase(DIAMONDS)) ||
(newSuit.equalsIgnoreCase(CLUBS)) ||
(newSuit.equalsIgnoreCase(SPADES)))
{
suit = newSuit;
}
else
{
newSuit = "invalid";
System.out.print("Invalid");
}
}
public int getNumber()
{
return number;
}
public String getSuit()
{
return suit;
}
public void setNumber(int newNumber)
{
if(newNumber >0 && newNumber <=10)
{
number = newNumber;
}
else
{
number = 0;
System.out.print("invalid number");
}
}
}
'setDeck' 메소드가 표시되지 않습니다. 또한, Cards @ 597f13c5는 Cards 클래스의 toString 메소드를 오버라이드하지 않았다는 것을 의미합니다. – csmckelvey
또는'print' 메소드. – Jazzepi
내 beeing에 대한 나쁜, 내가 곧 편집, makeDeckFull 방법과 showDeck, 미안 다시 나쁘다. – user3547716