静态方法与非静态方法的区别
静态方法:
外部调用静态方法时,可以直接通过【类名.静态方法名】的方式调用,也可以通过创建类的对象来调用。
非静态方法:
非静态方法的调用只能通过【对象.非静态方法名】的方式调用。
例:
现分别有一个静态方法method1、非静态方法method2
public static void method1(){
System.out.println("这是静态滴...");
}
public void method2(){
System.out.println("这是非静态滴...");
}
在调用时:
method2---------【step1: ClassName class1 = new ClassName();
step2: class1.method2; 】
method1 --------ClassName.method1(或者同上方法)
**
静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。
同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。
基于同样的道理,静态方法中也不能使用关键字this。
main()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。