Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java';s toString()静态或非静态(基于我的示例)_Java_Oop - Fatal编程技术网

Java';s toString()静态或非静态(基于我的示例)

Java';s toString()静态或非静态(基于我的示例),java,oop,Java,Oop,我不熟悉oop的概念,因此我写的东西可能有不好的假设。请在适当的地方纠正我 在一些代码中,我看到函数以int number的形式接受参数。然后,在函数中写入以下行outputString=Integer.toString(number) 我将其解释为go类Integer,找到一个名为toString()的方法,并将名为number的int输入该类,然后将其输出设置为outputString。由于语法是class.method(arg),我假设toString()是一个静态函数 我想测试它是否是静

我不熟悉oop的概念,因此我写的东西可能有不好的假设。请在适当的地方纠正我

在一些代码中,我看到函数以
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将对此进行更多研究。