Java打印错误toString()赢得';t打印
我创建了一个类卡来模拟一张普通的扑克牌。在这个类中,我们将创建一个toString()方法来返回卡片的字符串表示形式。我们还必须创建另一个名为CardTestDriver的类来打印特定的卡。我已经为这些类编写了代码,但是当我运行它时,没有打印任何内容。我不确定哪里出了问题,如果有人能看到错误在哪里,那会有帮助吗?一切都在编译,但不是打印。这也是我第一次使用枚举类型,所以可能我做错了什么?非常感谢您的帮助 这是我的卡片课:Java打印错误toString()赢得';t打印,java,Java,我创建了一个类卡来模拟一张普通的扑克牌。在这个类中,我们将创建一个toString()方法来返回卡片的字符串表示形式。我们还必须创建另一个名为CardTestDriver的类来打印特定的卡。我已经为这些类编写了代码,但是当我运行它时,没有打印任何内容。我不确定哪里出了问题,如果有人能看到错误在哪里,那会有帮助吗?一切都在编译,但不是打印。这也是我第一次使用枚举类型,所以可能我做错了什么?非常感谢您的帮助 这是我的卡片课: public class Card{ public enum Su
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());
}
}
您要调用卡的
toString
方法:
Card card = new Card (Card.Rank.SEVEN,Card.Suit.SPADES,Card.Status.FACEDOWN);
System.out.println(card.toString());
您要调用卡的
toString
方法:
Card card = new Card (Card.Rank.SEVEN,Card.Suit.SPADES,Card.Status.FACEDOWN);
System.out.println(card.toString());
您需要打印实际对象,类似于
System.out.println(新卡(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
打印到控制台,很好您需要打印实际对象,类似于System.out.println(新卡(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
打印到控制台,效果很好尝试打印卡的实际实例,System.out.println(新卡(卡.等级.SEVEN,卡.套装.SPADES,卡.状态.FACEDOWN))代码>…我试过了,但没用-编译,但没有打印打印打印SEVEN SPADES FACEDOWN
只为我打印fine@onay-可能问题在于主方法缺乏“静态”声明。你在主持这个班吗?如果是这样的话,必要的方法签名是publicstaticvoidmain(String[]args)
。是的,我也尝试过,但同样的结果没有打印出来。打印卡片的实际实例,System.out.println(新卡片(card.Rank.SEVEN,card.Suit.SPADES,card.Status.FACEDOWN))代码>…我试过了,但没用-编译,但没有打印打印打印SEVEN SPADES FACEDOWN
只为我打印fine@onay-可能问题在于主方法缺乏“静态”声明。你在主持这个班吗?如果是这样的话,必要的方法签名是publicstaticvoidmain(String[]args)
。是的,我也尝试过,但同样的结果是,printedIt不是一个静态方法,因此您不能在没有实例的情况下从对象调用toString()
。而且,CardTestDriver
从未被实例化。@ElliottFrisch True。回答得有点快:)@ElliottFrisch-你在这里发现了什么;Op没有从静态上下文调用toString();事实上,main方法根本不会被使用,是吗?它是一个静态方法,因此如果没有实例,就不能从Object
调用toString()
。而且,CardTestDriver
从未被实例化。@ElliottFrisch True。回答得有点快:)@ElliottFrisch-你在这里发现了什么;Op没有从静态上下文调用toString();事实上,主要方法根本不会被使用,是吗?