假设我有一个类A
,它有自己的实例变量。它有一个名为 的方法doSomething()
,它是一个static
方法。现在,A
添加另一个类B
作为指针。在类里面说B
,我运行一些逻辑并确定我需要运行包含在doSomething()
. 我可以直接说A.doSomething()
吗?如果我有一个被调用的实例A
,a
是否会调用a
'sdoSomething()
方法?
问问题
300 次
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 的创建对象来调用它。
第二个问题的答案:“如果我有一个被调用的实例A
,a
是否会调用a
'sdoSomething()
方法?”
事实上它会,但它类似于说A.doSomething()
。因此,以这种方式调用它是没有意义的。如果有的话,它会在您稍后阅读代码时增加您的困惑。
于 2013-02-01T02:13:21.497 回答
0
虽然我质疑你的一些术语(我感觉你知道你在说什么,但你只是没有完美地表达出来),回答你的问题,不,因为它不能。静态方法与类绑定。调用 a.staticMethod() 与 A.staticMethod 相同。两者都做完全相同的事情。
于 2013-02-01T02:07:52.783 回答