在static方法的内部不能调用非静态方法,反过来倒是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static的用途。他很像全局方法。java中禁止使用全局方法,但你在类中置入static方法就可以访问其他static方法和static栈。
有些人认为static方法不是“面向对象”的,因为它们的确具有全局函数的语法;使用static方法时,由于不存在this,所以不是通过“想对象发送信息”的方式来完成的。的确,要是在代码中出现了大量的static方法,就要重新考虑自己的设计了。然而,static的概念有其适用之处,许多时候都要用到它。至于他是否真的“面向对象”,就留给理论家去讨论吧。事实上,Smalltalk语言里的“类方法”就是与static方法相对应的。
新闻热点
疑难解答