我创建了一张模拟常规扑克牌的卡片。在这个类中,我们要创建一个toString()方法来返回卡的字符串表示。我们还必须创建另一个名为CardTestDriver的类,它打印出一张特定的卡片。我已经编写了类的代码,但是当我运行它时,没有打印任何内容。我不确定有什么问题,如果有人能看出错误在哪里会有帮助吗?一切都在编译,但不是打印。这也是我第一次使用枚举类型,所以也许我做错了什么?非常感谢帮助!
这是我的卡类:
public class Card{
public enum Suit {
CLUBS, DIAMONDS, HEARTS, SPADES;
}
public enum Rank {
ACE, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,
NINE, TEN, JACK, QUEEN, KING
}
public enum Status {
FACEUP, FACEDOWN
}
final Rank rank;
final Suit suit;
final Status status;
public Card (final Rank rank, final Suit suit, final Status status)
{
this.rank = rank;
this.suit = suit;
this.status = status;
}
public String toString()
{
return rank + " " + suit + " " + status;
}
}
这是我的CardTestDriver.java类
public class CardTestDriver{
public void main(String[] args) {
new Card (Card.Rank.SEVEN,Card.Suit.SPADES,Card.Status.FACEDOWN);
System.out.println(toString());
}
}
答案 0 :(得分:3)
您想要调用卡片的toString
方法:
Card card = new Card (Card.Rank.SEVEN,Card.Suit.SPADES,Card.Status.FACEDOWN);
System.out.println(card.toString());
答案 1 :(得分:1)
您需要打印实际对象,例如System.out.println(new Card(Card.Rank.SEVEN, Card.Suit.SPADES, Card.Status.FACEDOWN));
......
public class CardTestDriver {
public static void main(String[] args) {
System.out.println(new Card(Card.Rank.SEVEN, Card.Suit.SPADES, Card.Status.FACEDOWN));
}
public static class Card {
public enum Suit {
CLUBS, DIAMONDS, HEARTS, SPADES;
}
public enum Rank {
ACE, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,
NINE, TEN, JACK, QUEEN, KING
}
public enum Status {
FACEUP, FACEDOWN
}
final Rank rank;
final Suit suit;
final Status status;
public Card(final Rank rank, final Suit suit, final Status status) {
this.rank = rank;
this.suit = suit;
this.status = status;
}
@Override
public String toString() {
return rank + " " + suit + " " + status;
}
}
}
将SEVEN SPADES FACEDOWN
打印到控制台就好了