静态方法的 问题
想问一下,我觉得静态方法到底有什么实际点的作用,最多时可以不创建类对象下调用,好像没什么实际作用。
------解决方案--------------------静态初始化
singleton模式
------解决方案--------------------好像没什么实际作用。
==================
楼主这话说的可不对,你去去看看Apache common lang下面的有一个StringUtils里面提供了很多
对String操作的方法,如果这些方法不是静态的话,你每次用的时候,都要生成一对象,这样的话一个是编程编的烦,另一个系统无故的多创建了那么多对象,性能不能说没有影响吧
-------------
还有Jdk 中的那个Math方法,里面有许多静态方法,用与数学运算,也是一个道理
关于Math类,think in java 里有很详细的介绍,楼主有空可以看看
------解决方案--------------------有些东西必须是类的,或者说有些东西应该是类的,有些方法必须在开始就给她分配地方,而不是你实力化一个类的时候才出现
像public static void main(String[] args)
这是整个类或者说程序的入口,你总不能在程序执行前就实例一个对象,然后obj.main();吧,这句又该写到哪里呢?楼主你认为呢?
------解决方案--------------------没有几个程序不会用到static修饰的方法。因为静态的方法只能调用静态的方法
------解决方案--------------------从面向对象的角度讲,有类方法,是属于整个类不应该专属于某个对象的,比如 "人类进步 "这样的行为
从效率的角度讲,静态方法不需要实例化一个对象出来,效率比较高(我没有实验过,仅供参考)
个人觉得不要静态方法技术上是可行的,完全可以做替换, 但是这样一来java会很不好用.
------解决方案--------------------静态类的好处就是能在其他类里面对象打.就能出方法。而其他的方法都是要生成这个类的实例化才能调用所用的方法。
而不好的缺点就是不能使用this和super关键字。从而没办法去继承父类的函数
------解决方案--------------------可想象成全局的
------解决方案--------------------你可以把它当成函数来看待。
------解决方案--------------------像 StringUtils 这种东西,它的作用就是把这些全局性的方法组织起来。