Java打印错误toString()将无法打印

时间:2015-09-09 00:02:04

标签: java

我创建了一张模拟常规扑克牌的卡片。在这个类中,我们要创建一个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());
    } 
}

2 个答案:

答案 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打印到控制台就好了