-1

假设我有一个类A,它有自己的实例变量。它有一个名为 的方法doSomething(),它是一个static方法。现在,A添加另一个类B作为指针。在类里面说B,我运行一些逻辑并确定我需要运行包含在doSomething(). 我可以直接说A.doSomething()吗?如果我有一个被调用的实例Aa是否会调用a'sdoSomething()方法?

4

4 回答 4

7

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

于 2013-02-01T02:07:07.307 回答
2

静态方法不属于任何特定实例。因此,当您调用 A.doSomething() 时,是否存在 0、1 或一百万个 A 实例都无关紧要。调用一个方法。

于 2013-02-01T02:07:17.583 回答
2

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

第二个问题的答案:“如果我有一个被调用的实例Aa是否会调用a'sdoSomething()方法?”
事实上它会,但它类似于说A.doSomething()。因此,以这种方式调用它是没有意义的。如果有的话,它会在您稍后阅读代码时增加您的困惑。

于 2013-02-01T02:13:21.497 回答
0

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

于 2013-02-01T02:07:52.783 回答