java - 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。为什么会出现这种情况,我该如何修改它以防止它出现?
谢谢你。
解决方案
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--
推荐阅读
- javascript - 尝试使用 Express 将数据插入 MySql 数据库时出错
- javascript - fonts.min.css:1 加载资源失败:服务器在laravel中响应状态为404(未找到)
- c++ - 为什么我使用 ofstream 的 c++ 代码无法在 /tmp 子目录中创建文件?
- postgresql - PostgresSQL 是否有任何默认密码策略?
- r - 如何在 tibble 中对列表列使用 `mutate_at`?
- groovy - `def` 关键字是可选的吗?如果是这样,为什么要使用它?
- ios - SwiftyStoreKit.verifyReceipt 不断询问 Apple ID(应用内购买)
- firebase - 在我调用 doc.end() 之前,PDFKIT 不会在 http 响应上开始流式传输
- automation - cypress how to test data-state is visble
- python-3.x - Selenium 远程 webdriver 不接受 Synology Nas 中的 chrome 选项。在桌面上工作正常