假设我有一个类A
,它有自己的实例变量。它有一个名为doSomething()
的方法,它是static
方法。现在,A
添加了另一个类B
作为指针。在类B
中说,我运行一些逻辑并确定我需要运行doSomething()
中包含的代码。我可以只说A.doSomething()
吗?如果我有一个名为A
的{{1}}实例,是否会调用a
的{{1}}方法?
答案 0 :(得分:7)
如果您调用A.doSomething()
,它将只执行该静态方法。说a
的{{1}}没有意义,因为静态方法不属于你的类的对象或实例。
答案 1 :(得分:2)
静态方法不属于任何特定实例。所以当你调用A.doSomething()时,如果有0,1或100万个A实例并不重要。一个方法被调用。
答案 2 :(得分:2)
第一个问题的答案:"我可以只说A.doSomething()
吗?"
是的。正如其他答案所指出的那样...... doSomething()
是static
是一个类方法,因此需要为其调用创建A的对象。
第二个问题的答案:"如果我有一个名为A
a
的实例,a
doSomething()
方法被调用?"
事实上它会,但它类似于A.doSomething()
。因此,以这种方式援引它毫无意义。如果有的话,以后当你阅读代码时会增加你的困惑。
答案 3 :(得分:0)
虽然我质疑你的一些术语(我感觉你知道你在谈论什么,你只是没说完美),回答你的问题,不,因为它不能。静态方法与类绑定。调用a.staticMethod()与A.staticMethod相同。两者都完全相同。