【问题标题】:Instance of an object not displaying value from toString method [duplicate]对象的实例不显示来自 toString 方法的值 [重复]
【发布时间】:2020-09-06 05:59:12
【问题描述】:

我正在尝试做的是从我的两个数组中获取一个随机值,我已经成功完成了。我的问题是,当我的 Card 类中的对象实例被创建时,我没有收到正确的输出。我希望我的输出类似于“红桃2”或“黑桃J”。相反,我没有输出,但代码运行成功。

代码如下:

import java.util.Random;

public class Card {
    private static final String deckRanks[] = {"King", "Queen", "Jack", "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
    private static final String deckSuits[] = {"of Diamonds", "of Spades", "of Hearts", "of Clubs"};

    public static void main(String[] args) {

    }

    public static String getRandomCard(){ 
        String card;
        Random cardSelector = new Random();

        int randomRank = cardSelector.nextInt(deckRanks.length);
        int randomSuit = cardSelector.nextInt(deckSuits.length);

        card = deckRanks[randomRank] + " " + deckSuits[randomSuit];
        return card;
    }

    @Override
    public String toString(){
        return getRandomCard();
    }
}

以及带有 Card 对象实例的类:

public class CardHand {
    public static void main(String[] args) {
        Card cards = new Card();

        cards.getRandomCard();
    }
}

【问题讨论】:

  • 您在运行CardHand 还是Card?因为Card.main() 是空的。

标签: java object


【解决方案1】:

您的 CardHand 类中的 main 方法不执行任何操作来显示随机选择的卡片。

它应该如下所示...

public class CardHand {
    public static void main (String[] args) {
        // create a new Card
        Card card = new Card();
        // show the output of the Card's toString() method in the console
        // remember that getRandomCard() is called when we call toString()
        System.out.println("Random card is: "+card.toString());
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    相关资源
    最近更新 更多