Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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 为什么我可以在类上调用方法而不实例化它?_Java_Integer_Static Methods - Fatal编程技术网

Java 为什么我可以在类上调用方法而不实例化它?

Java 为什么我可以在类上调用方法而不实例化它?,java,integer,static-methods,Java,Integer,Static Methods,例如,我从Integer调用一个方法,如到hexstring() 现在我需要用下面的代码打印出来 int i = 123455; System.out.println(Integer.toHexString(i)); 我还没有创建名为Integer的新对象。为什么我可以直接使用Integer,这个对象?您可以这样使用它,因为tohextstring是一种静态方法 对于static成员,您不需要实例,可以通过类直接调用它们。Integer.toHexString(i)-调用类In

例如,我从Integer调用一个方法,如
到hexstring()

现在我需要用下面的代码打印出来

    int i = 123455;
    System.out.println(Integer.toHexString(i));

我还没有创建名为
Integer
的新对象。为什么我可以直接使用
Integer
,这个对象?

您可以这样使用它,因为
tohextstring
是一种
静态方法

对于
static
成员,您不需要实例,可以通过类直接调用它们。

Integer.toHexString(i)
-调用类Integer的静态方法<代码>静态方法
不要求创建对象


您可以在中阅读更多内容

您可以通过引用类名或使用对象引用(这通常会导致错误和误解)来执行
静态
方法。所以我建议不要使用第二种方法

Integer.toHexString(i);

Integer i = new Integer(1);
i.toHexString(i);


在您的例子中,
Integer
只是一个类名(不是您提到的对象),它有一个名为
toHexString(inti)
static
方法,因为
toHexString
是一个
static
方法,所以您可以通过三种方式访问它

第一条路
Integer.toHexString(i)//静态方法使用类名直接访问。

第二条路 选项B也将起作用,因为
静态
也可以通过使用任何
null
引用的类对象进行访问

第三条路 选项C也将起作用,因为
static
也可以通过使用任何初始化的引用的类对象进行访问


只是把其他人已经说过的加起来

存在java.lang.*的隐式导入


Integer
是该包中的类之一。因此,此类不需要导入
。这就是为什么您可以直接使用该类,而无需创建自己的Integer类或导入它。

Integer
是一个类,而不是一个对象。为什么您认为您不能调用该
静态方法?第二种和第三种方法不是访问该方法的好方法。因为(我引用了编译器的警告)
应该以静态方式访问Integer类型中toHexString(int)的静态方法
@nafas,我只是建议在这种情况下可以使用多少种可能的方法。谢谢。我现在明白了
Integer v_objInt = null;
    v_objInt.toHexString(i);   //this will also work.
Integer v_objInt = new Integer();
v_objInt.toHexString(i);   //this will also work.