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