Java';s toString()静态或非静态(基于我的示例)
我不熟悉oop的概念,因此我写的东西可能有不好的假设。请在适当的地方纠正我 在一些代码中,我看到函数以Java';s toString()静态或非静态(基于我的示例),java,oop,Java,Oop,我不熟悉oop的概念,因此我写的东西可能有不好的假设。请在适当的地方纠正我 在一些代码中,我看到函数以int number的形式接受参数。然后,在函数中写入以下行outputString=Integer.toString(number) 我将其解释为go类Integer,找到一个名为toString()的方法,并将名为number的int输入该类,然后将其输出设置为outputString。由于语法是class.method(arg),我假设toString()是一个静态函数 我想测试它是否是静
int number
的形式接受参数。然后,在函数中写入以下行outputString=Integer.toString(number)代码>
我将其解释为go类Integer,找到一个名为toString()的方法,并将名为number的int输入该类,然后将其输出设置为outputString。由于语法是class.method(arg),我假设toString()是一个静态函数
我想测试它是否是静态的。我用参数Integer number
重写代码,然后执行outputString=number.toString()代码>成功了。这是obj.method(arg)的形式,我假设它只适用于非静态方法
我不确定从中得出什么结论,或者我是否做出了错误的假设。谢谢。如果你说的是Integer类,它有两个方法来字符串,一个是静态的,另一个不是静态的
Integer a = 5;
a.toString() // Is valid
Integer.toString(5); // Also is valid
如果你说的是Integer类,它有两个方法来字符串,一个是静态的,另一个不是静态的
Integer a = 5;
a.toString() // Is valid
Integer.toString(5); // Also is valid
java.lang.Integer类中有3个方法
公共静态字符串toString(int i)李>
公共静态字符串toString(int i,int基数)李>
公共字符串toString()李>
在第一种情况下,您使用了第一种(静态方法)。
在第二种情况下,您使用了第三种方法(非静态方法)。java.lang.Integer类中有3种方法
公共静态字符串toString(int i)李>
公共静态字符串toString(int i,int基数)李>
公共字符串toString()李>
在第一种情况下,您使用了第一种(静态方法)。
在第二种情况下,您使用了第三种方法(非静态方法)。我认为您应该了解有关java继承的更多信息。所有类都扩展对象类,这就是为什么所有类都有非静态的toString()
方法并可以重写它。类Integer
还具有静态toString(int number)
,它返回String
表示int
,我认为您应该了解java中继承的更多信息。所有类都扩展对象类,这就是为什么所有类都有非静态的toString()
方法并可以重写它。类Integer
还具有静态toString(int number)
,返回String
表示int整数类具有以下两种方法
public static String toString(int i) {
if (i == Integer.MIN_VALUE)
return "-2147483648";
int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
char[] buf = new char[size];
getChars(i, size, buf);
return new String(buf, true);
}
这两种方法都是不言自明的。注意,第二个方法调用第一个方法
Integer.toString(1); // Calls method 1
Integer one = 1;
one.toString(); // Calls method 2
Integer类有如下2种方法:
public static String toString(int i) {
if (i == Integer.MIN_VALUE)
return "-2147483648";
int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
char[] buf = new char[size];
getChars(i, size, buf);
return new String(buf, true);
}
这两种方法都是不言自明的。注意,第二个方法调用第一个方法
Integer.toString(1); // Calls method 1
Integer one = 1;
one.toString(); // Calls method 2
您可能还想查找对象的toString()方法,顺便说一句,它在java中的每个对象中都会被继承。这种方法不是静态的。Integer的toString(int)方法仅特定于Integer类。此方法是静态的(不适用于对象,但仅适用于Integer类)。您还需要了解“方法重写”、“方法重载”和“多态性”的概念。这是一个几乎完全包含您的问题的页面:您可能还想查找对象的toString()方法,顺便说一下,它在java中的每个对象中都会被继承。这种方法不是静态的。Integer的toString(int)方法仅特定于Integer类。此方法是静态的(不适用于对象,但仅适用于Integer类)。您还需要了解“方法重写”、“方法重载”和“多态性”的概念。这是一个几乎完全包含您的问题的页面:int是一个基本类型,而不是一个类。int没有方法。在Integer
的情况下,toString
以静态和非静态的形式存在,对于int
和实际的Integer
。看看javadoc:int是一种基本类型,而不是一个类。int没有方法。在Integer
的情况下,toString
以静态和非静态的形式存在,对于int
和实际的Integer
。看看javadoc:这称为“方法重载”。对于同一个类,可以有多个名称相同的方法(通过其参数签名进行区分)(其中一些方法也可以是静态的)。@tobias_k确切地说,有一个方法有两个参数,我忘了,谢谢谢谢你billal!我不知道你可以有多个同名的方法!谢谢,Thilo将对此进行更多研究。这称为“方法重载”。对于同一个类,可以有多个名称相同的方法(通过其参数签名进行区分)(其中一些方法也可以是静态的)。@tobias_k确切地说,有一个方法有两个参数,我忘了,谢谢谢谢你billal!我不知道你可以有多个同名的方法!谢谢,Thilo将对此进行更多研究。