2013-02-01 63 views
-1

假设我有一个类A,它有自己的实例变量。它有一个名为doSomething()的方法,它是一个static方法。现在,A增加了另一个类B作为一些指针。在类B内部,我运行一些逻辑并确定需要运行doSomething()中包含的代码。我可以说A.doSomething()可以吗?如果我有一个名为aA实例,adoSomething()方法会被调用吗?Java - 将调用静态方法调用所有实例上的方法吗?

+1

你是数学家,不是吗? – AlexWien

+0

对不起?你什么意思? – Jeeter

+0

我会建议,只需写下代码并在方法中添加一些打印语句即可。执行代码广告,看看会发生什么。 – Arham

回答

7

如果您调用A.doSomething()它只会执行该静态方法。说adoSomething没有意义,因为静态方法不属于您的类的对象或实例。

+0

好的。谢谢! – Jeeter

2

静态方法不属于任何特定的实例。所以当你调用A.doSomething()时,如果有0个,1个或一个A的实例,没关系。调用一个方法。

0

虽然我质疑你的一些术语(我感觉你知道你在说什么,你只是没有完全说出来),回答你的问题,不,因为它不能。静态方法与类相关联。调用a.staticMethod()与A.staticMethod相同。两者都做同样的事情。

2

您的第一个问题的答案是:“我可以只说A.doSomething()?”
是的。正如其他答案所指出的那样... doSomething()static是一个类方法,因此确实需要为它的调用创建A对象。

回答你的第二个问题:“如果我有A称为a一个实例,并adoSomething()方法被调用”
事实上它会,但它类似于说A.doSomething()。因此,用这种方式没有任何意义。如果有的话,当你阅读代码时,它会在以后增加你的困惑。