在重构时不知道大家有没有注意到一个问题,当一个类调用另一个类的方法的时候,有的方法能直接用类名点出来,有的方法需要用实例化出来的对象才能点出来。当时没太在意这个问题,今天看牛腩时里面提到了,就又查了查,到现在才理解。
能直接用类名点出来的方法是静态方法,也就是用static修饰的方法。静态方法只能访问类中的静态成员,方法中不能用this等关键字,因为它属于整个类,它的效率要比实例化高,但占内存。静态方法和静态变量创建后始终用同一块内存。
没有用static修饰的就是非静态方法了,非静态方法可以访问类中的任何成员,它在实例化后才分配内存,实例化会创建多个内存,可以自动销毁。