Java static的涵义
头脑里有了this关键字的概念,你就能更加充分地理解定义一个方法为static的意思。 static的意思是你不能将this用于那个特定的定义为static的方法。 你不可以在static方法里调用non-static方法2(尽管反过来是可以的),你可以在没有任何对象的情况下为类自身调用static方法。 实际上,这就是static方法的主要意图。 看上去这似乎是在创建全局方法。 不过,全局方法在Java里不允许,Java允许为类定义static方法从而允许该方法访问别的static方法和static fields。
一些人争论说static方法不属于object-oriented的范畴,因为这种方法带有全局方法的意思;使用static方法时,既然不能有this的概念,你就没有为对象发送消息。 这或许是个合理的意见,假如你发现自己使用了很多static方法,就应该重新思考一下你的策略。 不过,statics是实用地,很多时候你确实需要它们,所以它们到底是不是“正确的面向对象的概念”就应该留给理论家来论证。
头脑里有了this关键字的概念,你就能更加充分地理解定义一个方法为static的意思。 static的意思是你不能将this用于那个特定的定义为static的方法。 你不可以在static方法里调用non-static方法2(尽管反过来是可以的),你可以在没有任何对象的情况下为类自身调用static方法。 实际上,这就是static方法的主要意图。 看上去这似乎是在创建全局方法。 不过,全局方法在Java里不允许,Java允许为类定义static方法从而允许该方法访问别的static方法和static fields。
一些人争论说static方法不属于object-oriented的范畴,因为这种方法带有全局方法的意思;使用static方法时,既然不能有this的概念,你就没有为对象发送消息。 这或许是个合理的意见,假如你发现自己使用了很多static方法,就应该重新思考一下你的策略。 不过,statics是实用地,很多时候你确实需要它们,所以它们到底是不是“正确的面向对象的概念”就应该留给理论家来论证。
902

被折叠的 条评论
为什么被折叠?



