在static方法的內部不能調用非靜態方法,反過來倒是可以的。而且可以在沒有創建任何對象的前提下,僅僅通過類本身來調用static方法。這實際上正是static的用途。他很像全局方法。java中禁止使用全局方法,但你在類中置入static方法就可以訪問其他static方法和static棧。
有些人認為static方法不是“面向對象”的,因為它們的確具有全局函數的語法;使用static方法時,由于不存在this,所以不是通過“想對象發送信息”的方式來完成的。的確,要是在代碼中出現了大量的static方法,就要重新考慮自己的設計了。然而,static的概念有其適用之處,許多時候都要用到它。至于他是否真的“面向對象”,就留給理論家去討論吧。事實上,Smalltalk語言里的“類方法”就是與static方法相對應的。
新聞熱點
疑難解答