什么情况下用static啊,我的理解就是用了static的方法在另一个类里就不用实例化了:类名.方法名,别的还有什么作用?另外:想问一下,声明一个不是static的方法,然后使用时直接new一个;或者用satic的方法,使用时:类名.方法名 。  ---请问这两种方法有什么区别,在效率或者别的方面哪个更好一些,一般应该用哪种方法啊 ?非常感谢!!!

解决方案 »

  1.   

    我觉得应该是static的效率比较高,但不是什么方法都可以static的。如果一个类中的方法是和其他方法没有数据联系的,一般可以定义为static,如sqlHelper应该是比较典型的吧。但是使用static会是你无法用到很对面向对像的特性。这是我的一点点理解,不对的话请大家指正。
      

  2.   

    不是什么效率问题。当你使用static的时候,别人如果也涉及了相同的类,就会因为每个人都胡乱使用static而互相干扰程序逻辑,即使今天程序能够通过了,明天不一定什么时候就出现了难以定位的错误——因为是逻辑错误而不是语法错误。
      

  3.   

    还是不太明白,能举个例子吗?什么情况下会导致多方同时在使用同一个static方法?
    谢谢!!
      

  4.   

    不明白?
    你看看这个帖子:
    http://community.csdn.net/Expert/topic/5040/5040811.xml?temp=.213833里面有我写的一段代码,你执行一下看看,然后你在不同的客户端也打开这段代码,你可以看到一些现象