Java 为什么我可以在类上调用方法而不实例化它?
例如,我从Integer调用一个方法,如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
到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.