静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。
如:
public class Per{
public static String getType(){
return "人类";
}
public String getName(){
return "张三";
}
}
上面这个类中的getType方法,在没有new对象前这就可以这样用:
String type=Per.getType();//type="人类";
而getName方法则不能这样使用,编译都不会通过
getName必须这样:
Per p=new Per();
String name=p.getName();//name="张三";
当然,getType方法也可能通过对象调用:
String type=p.getType();//type="人类";
综上所述:
静态方法是在创建实例之前就存在了,而非静态方法是在创建对象之后才有的。
静态代码块和非静态代码块的区别
静态代码块,在虚拟机加载类的时候就会加载执行,而且只执行一次;
非静态代码块,在创建对象的时候(即new一个对象的时候)执行,每次创建对象都会执行一次