2

在 Java 中,我的理解是每个类都继承自 Object。但是,如果我调用以下代码,它会犹豫:

Math.PI.toString()

它给出了错误:“静态错误:双精度中没有方法名称为'toString'”

这是否意味着 double 不会从 Object 继承?那么什么是双倍呢?

4

6 回答 6

6

这是否意味着double不继承自Object

是的。

那么是什么double呢?

它是语言本身内置的原始类型。还有其他原始类型,如char, short, int, float, boolean

虽然,该语言确实提供了围绕每个基本类型构建的包装器,这些基本类型从Object- IntegerCharacterShortDouble等扩展而来。
您可以使用Double.toString(double)方法来获取字符串表示形式。

于 2013-10-27T19:50:56.130 回答
4

Math.PIisdouble和 double 是原始类型,这意味着它没有任何方法。如果是这样,Double那么您将能够调用它的toString方法,但我看不出有任何理由。

如果要创建双重使用的字符串表示

String value = String.valueOf(Math.PI);

或者

String value = Double.toString(Math.PI) 

顺便说一句String.valueOf(d),返回结果Double.toString(d)

于 2013-10-27T19:50:44.113 回答
3

不,Math.PI 是双精度(原始,而不是双精度(对象),因此它不从对象继承

于 2013-10-27T19:51:11.287 回答
3

那是因为double是原始的。它不继承Object也没有它的行为。您仍然可以调用toString()whichDouble反过来是一个对象。
阅读有关 Java 中的原语和对象的更多信息。可能很有用。

于 2013-10-27T19:51:27.937 回答
2

double不是对象,而是原语。因此它没有 Object 的方法,例如toString()etc。

有一个 Object 版本的 double 调用Double,它是一个围绕 a 的 Object 包装器double

您可以通过调用创建一个 DoubleDouble myDouble = Double.valueOf(primative);

Double还具有用于对原始对象(例如 toString)进行常见操作的静态辅助方法

调用Double.toString(Math.PI);可能是你想要的

于 2013-10-27T19:52:18.830 回答
1

double是原始类型,但您可以使用 Java Double类来提供帮助。

这应该做你需要的:

Double.toString(Math.PI)
于 2013-10-27T20:00:39.607 回答