●区别:
这两句的区别就在于,能不能直接用类名访问。
接下来实例化一个对象ca,你会发现它不仅可以访问普通的方法,也可以访问静态的方法
如果每次我用一个类的方法之前我都要实例化一下这个类,那么无疑是对内存资源的浪费。于是静态方法就带来了便利,如下图所示:
【总结】public static void为静态方法,用一个类的方法之前不需要实例化这个类【所谓静态类,就是一开始就有的,类定义完后就存在。也就是说,只要加载了某个类,他的静态方法就产生了。不需要实例化,就可以直接用类名.方法名来调用。】
1.public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用;void是表示要定义的这个方法没有返回值。
2.public static void 修饰是静态方法,属于类,使用【类名.方法名】直接调用。public static是不完整的修饰符,后面要加上void,String,int等类型,表示方法是静态方法。
非静态方法之间可以互相调用,非静态方法也可以调用静态方法;但是静态方法不可以直接调用(未初始化的)非静态方法。由于 public static void main 作静态方法,所以遵循这个原则。
但是 Java 可以通过对象名调用静态方法(对象名.静态方法)。Java 中不会导致语法错误(syntax error),但是不推荐这样使用,静态方法与非静态方法调用时应当绝对区分;【而且其他 OOP 语言如 C#,Swift,Objective-C 都没有这样的语法。】
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/tech/java/276847.html