为什么任何类型包装类(也是 Number 类的子类)中存在的 toString() 方法在将数字作为参数传递时都是静态的,但在调用对象时却不是静态的?
就像 Float 类一样:-
传递号码时
static String toString(float num)
调用对象时:-
String toString( )
最佳答案
这是两种不同的方法。
1.静态方法
public static String toString(float f)
是静态方法,因此与类相关联,而不是与实例相关联。
您不需要实例来调用它。
因此,通过执行例如 Integer.toString(f)
2.实例方法
public String toString()
是一个实例方法,因此与类的实例相关联,而不是与类本身相关联。 您必须有一个实例才能调用它。
为了回答您的问题,假设我们希望能够有一个实例方法来执行静态 toString(myLong)
方法的操作。
通过这种方式,我们可以做到这一点:myLong.toString(myLong)
为了实现这一点,原始静态方法应该以两种方式提供:一种带有 static 修饰符,另一种不带有 static 修饰符(实例方法),而带有实例方法的方法永远不会使用其实例的状态执行toString()
。
那么,我们为什么要为此创建一个实例方法呢?
关于java - float类toString方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38539210/