用静态方法和实例化都可以访问到类的方法,使用时经常会混淆,比如:
class myclass
{
public static list<entity> myfunction_1(){....}
public list<entity> myfunction_2(){....}
public list<entity> myfunction_3(){....}
}
list<entity> test1 = myclass.myfunction_1();
list<entity> test2 = new myclass().myfunction_2();
list<entity> test3 = new myclass().myfunction_3();
或者
myclass objclass= new myclass();
list<entity> test2 = objclass.myfunction_2();
list<entity> test3 = objclass.myfunction_3();无论使用上面任一种方法都可以调用类里面的方法,请问什么情况用静态方法,什么情况用实例化对象
呢,什么时候要分开实例化呢,或者是根本可以随便用都可以呢?

解决方案 »

  1.   

    先理解下类与实例,关系好比如
    用真实案例比喻
    注册用户就是类
    那么我们的类有可能是这样写的public class 注册用户
    {
        void 发帖();
        //同时,有一个静态方法
        static void 禁止发帖();
        void 禁止发帖();
    }那么,你在发帖的时候,可能系统会做这样一条命令
    注册用户 guolucky2003 = new 注册用户();
    guolucky2003.发帖();这代表你的发帖行为;如果你被和谐了,管理员可能会禁止你的发帖,那么系统会做这么一个动作
    guolucky2003.禁止发帖();也许,因为和谐,大家都不能说话了,管理员为了不被管理员的管理员和谐,只能和谐我们这些无奈的注册用户了
    那么,管理员会禁止大家发言,那么,系统会做这个动作
    注册用户.禁止发帖();--------------------------------
    静态与实例的区别是
    实例针对某一特定实例,
    静态针对类.(某种意义上该结论成立)