请问编程时,什么时候该用到静态方法(看起来好像调用挺方便,好像速度也快),什么时候用 非静态方法很迷茫

解决方案 »

  1.   

    当方法不需要绑定对象时,用静态方法可以方便调用。而且public 的静态方法可以无需创建实例就直接通过类名使用
    当一个方法从属于一个对象,比如这个方法要调用对象中的非静态字段时,或者除了初始化以外,更新对象中的非静态字段时,最好就使用非静态方法。
      

  2.   

    当方法不需要绑定对象时,用静态方法可以方便调用。而且public 的静态方法可以无需创建实例就直接通过类名使用
    当一个方法从属于一个对象,比如这个方法要调用对象中的非静态字段时,或者除了初始化以外,更新对象中的非静态字段时,最好就使用非静态方法。
    根据需要来定。
      

  3.   

    和类成员无关时, 一份就够了, 可以static
    可以注意一下JDK的类, 如String.valueOf(xx)将某种类型对象转为String对象
      

  4.   

    静态方法就象是面向过程编程语言中的函数。OOP出现之前人们也一样能够编程,所以你完全不使用实例方法也可以编程。实例方法则是与对象的数据紧密相连的,被称为对象的行为。下面打一个比方,让你对静态方法和实例方法有一个非常感性化的认识。比如说有一个泥巴团儿,那么你可以把它看成一个对象。你可以用手使它变成各种形状,你的手就是静态方法,注意你的手外力,你从外部改变了对象。另外,如果有很多个泥巴团(即很多个对象),这只手(指静态方法)可以摆弄任意一个泥巴团。还是一个泥巴团儿(很多人都喜欢玩泥巴),但这是一个外星人小孩玩的泥巴团儿,你仍然可以用手去改变它,但外星的泥巴团儿高级多了,你吃饭的时候还可以照玩不误,你可以边吃饭边对它说:“圆一点……扁一点……”,它自己会改变成各种形状。这种改变自己形状的能力就是对象的行为,就是实例方法。我是个好教练不是?:)
      

  5.   

    //////////////////纯过程函数一定要加static。(不使用对象的)
    class Test
    {
    int num = 3;
    static void show(Test a)/////////加不加static 一样。
    {
    System.out.println(a.num);
    }
    }                             ////但在main中实现要这样:
    Test out = new Test();
    out.num = 10;
    out.show(out);             //This is very important!
    /////////////////////////////////非静态函数必须使用"引用. * "。
    /////////////////////////////////静态函数不需加。
    一般说你用静态还是非静态在函数定义是没什么大的区别。关键是你怎么调用。还有一点就是main必须是静态的。