在 Java 中,我的理解是每个类都继承自 Object。但是,如果我调用以下代码,它会犹豫:
Math.PI.toString()
它给出了错误:“静态错误:双精度中没有方法名称为'toString'”
这是否意味着 double 不会从 Object 继承?那么什么是双倍呢?
在 Java 中,我的理解是每个类都继承自 Object。但是,如果我调用以下代码,它会犹豫:
Math.PI.toString()
它给出了错误:“静态错误:双精度中没有方法名称为'toString'”
这是否意味着 double 不会从 Object 继承?那么什么是双倍呢?
这是否意味着
double
不继承自Object
?
是的。
那么是什么
double
呢?
它是语言本身内置的原始类型。还有其他原始类型,如char
, short
, int
, float
, boolean
。
虽然,该语言确实提供了围绕每个基本类型构建的包装器,这些基本类型从Object
- Integer
、Character
、Short
、Double
等扩展而来。
您可以使用Double.toString(double)
方法来获取字符串表示形式。
Math.PI
isdouble
和 double 是原始类型,这意味着它没有任何方法。如果是这样,Double
那么您将能够调用它的toString
方法,但我看不出有任何理由。
如果要创建双重使用的字符串表示
String value = String.valueOf(Math.PI);
或者
String value = Double.toString(Math.PI)
顺便说一句String.valueOf(d)
,返回结果Double.toString(d)
。
不,Math.PI 是双精度(原始,而不是双精度(对象),因此它不从对象继承
那是因为double
是原始的。它不继承Object
也没有它的行为。您仍然可以调用toString()
whichDouble
反过来是一个对象。
阅读有关 Java 中的原语和对象的更多信息。这可能很有用。
double
不是对象,而是原语。因此它没有 Object 的方法,例如toString()
etc。
有一个 Object 版本的 double 调用Double
,它是一个围绕 a 的 Object 包装器double
。
您可以通过调用创建一个 DoubleDouble myDouble = Double.valueOf(primative);
Double
还具有用于对原始对象(例如 toString)进行常见操作的静态辅助方法
调用Double.toString(Math.PI);
可能是你想要的