2014-01-28 116 views
-6

究竟是为什么某个特定类的静态方法不能引用类(对象)的同一个实例的原因及其他类(对象)的实例?为什么静态方法不能引用实例方法?

我在课本阅读。

+0

因为静态方法没有绑定到对象实例。 Java如何知道要使用什么对象?可以在不创建任何实例的情况下调用静态方法。 – kwatford

+0

可以调用静态方法而无需实例化该类的对象。如果传递给静态方法的对象实例可以引用实例方法。 –

回答

1

由于static可以在没有类的任何实例中使用。例如,当您使用Integer.parseInt(...)时,您使用类Integer的名称调用它,但您从未创建实例。

System.out.println(Integer.parseInt("123")); // Called with the name of the class 

那么,如果你可以引用一个实例在static方法内呢?如果用户使用类的名称调用它(不创建任何实例),则该方法不会有任何实例参考。

注意,你也可以调用一个static方法与实例,但推荐的方法是用类的名字来称呼它,以强调它是一个static方法:

Integer i = 0; 
System.out.println(i.parseInt("123")); // Can also be called with an instance, but not recommended 
0

哪个实例将在static method(其不与任何实例相关联)被参照?

答:无/不可判定;它没有任何意义,因为可以有0..n个实例。当你创建的那个特定class.Static方法的对象,如果你创建特定类的实例只能访问实例方法

0

实例方法,才可以访问。

相关问题