1. static方法含义为静态方法,其实它和构造方法的主要区别是它里面没有this的方法。其实我们写的程序中必须要写的main方法,其实就是一个静态方法。
2. static方法内部是不能直接使用非静态方法的,而可以直接使用静态方法。所以,我们可以直接使用类里面定义的静态的test方法,如test("Hello");然而不能直接使用非静态方法,所以我们在main方法中,使用非静态方法时,必须通过new 来新建一个对象,然后通过其引用来调用非静态方法和方法非静态数据成员。
3. 但是有时候为了方便起见,为了能够直接调用方法,使用大量的静态方法,这其实正是static方法的主要用途,其实它这就有点像全局方法了。但是在java中是禁止使用全局方法(至于为什么禁止使用全局方法,我个人觉得全局方法一致保存在内存中,不利于垃圾回收,导致内存泄漏)。但你在类中在类中置入static方法就可以方位其他static域和static方法。但是在代码中不能大量的出现static方法,因为static字段对每个类来说都只有一份存储空间,而非static字段则是对每个新建的对象有一个存储空间。
4. 基于以上,很多人不禁回想,那么static到底是不是面向对象的方法呢?因为它们的确具有全局函数的语义,使用static方法时,由于不存在this,所以不是通过”面向对象发送消息“的方式来完成的。我个人觉得,这种问题不用过多的思考,正如鸟里面也有不会飞的鸟,我们就不能说这不会飞的鸟就不是鸟了。