因为有static method (main) 要call它,呵呵

解决方案 »

  1. 你也可以不加啊!,,,,楼主不明白吗?
    static 的意思是这个方法属于类本身啊!程序改为a.swap(a,b);这样就可以不要static了....但它要通过对象的调用.不是类本身的方法.
      

  2. main方法是静态方法
    在JAVA中静态方法不能调用非静态方法,加了STATIC 就可以直接调用了。
      

  3. 用了static 就不用创建对象来调用了,可以直接调用!
    还可以这样:类名.方法名();
      

  4. main函数是static,直接调用的方法必须static
    如果不是static的话,需要实例化这个类再调用
    Employee a=new Employee("test");
    a.swap(a,b);
      

  5. JAVA中的静态方法不能直接调用非静态方法。要想调用的话,将非静态的转化为静态的,也可以通过类实例来调用,不过我比较支持前一种。
      

  6. 虽然都说对了,但是没有说到根本上
    静态域(包括属性和方法)是在类实例前就需要准备好的,因此不需要建立类的实例就可以调用,比如Math类中的很多方法。事实上静态域可以认为是全局域,只不过封装在一个类中。
    因为静态域必须在实例化之前就准备好,所以静态方法就不能调用外部的非静态域(无法保证它们准备好了),要么调用静态域,要么自己建立实例调用。
      

  7. "static"表示静态函数或成员,它无须进行实例化便可以调用,可直接通过
    类名.方法名(); 来调用,上面那个程序完全可以不加"static",也一样可以,只是在主方法中修改一下便可以了.
      

  8. 谢谢各位了。我基本上理解了。
    还有个问题,什么时候用static呢?相比non-static有什么好处呢?请举具体的例子说明?
      

  9. 静态不能调非静态,反之并不成立.
    static 和non-static是你的语义决定的,实际上不是可选的,
    假如某个变量或方法对整个类适用,用static,
    比如说某个类共享的一个数据库连接.
      

  10. static只能调用static反之不成立。但若non-static是嵌套类折其不能调用static
      

  11. 我发还,还是csdn上的兄弟们好!
      

  12. 无法在static函数中调用non-static函数(反向可行),在static函数中没有所谓的this,可由类本身来调用static函数,无需通过对象,这就是static函数存在的原因,它很象C的全局函数,但是Java没有全局函数,将static函数置于类中可以对其他的static函数和成员提供访问的可能.
      

类似问题 »