首页 > 解决方案 > Java 打印输出奇怪的数字

问题描述

我有一个简单的 Java 程序来生成随机骰子面 - 代码如下:

骰子面课

class Dice
{
    private int face;

    public Dice()
    {
        System.out.println(face());
    }

    public int getFace()
    {
        return face;
    }

    public void setFace(int face)
    {
        this.face = face;
    }

    private int face()
    {
        face = (int)(Math.random() * 7);
        return face;
    }
}

主班

class John
{
    public static void main (String [] args)
    {
        Dice dice = new Dice();
        System.out.println(dice);
    }
}

当我执行 println 时,它会返回:

5
Dice@6d06d69c

我不知道为什么会有 Dice@6d06d69c。为什么会出现这种情况,我该如何修改它以防止它出现?

谢谢你。

标签: java

解决方案


System.out.println(骰子);

Java 在这里调用 Dice 类的“toString()”方法

骰子@6d06d69c

您没有为 Dice 类提供您自己的 toString 的实现,因此调用来自 Object 类的 toString 的默认实现。

如果您更感兴趣,请查看 java 文档: https ://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--


推荐阅读