static:修饰静态成员,类成员。无论这个类实例化多少个对象,这些对象都公用一个静态空间。
特征:
1. 类对象共享
2. 类加载时产生,销毁时释放,生命周期长。
静态成员的访问方式:
1. 对象.成员
2. 类.成员(推荐用这种)
static+属性:静态属性,类属性
static+方法:类方法,静态方法
ps:不能加在类和加在局部变量里。
在成员方法中,可以直接访问类中静态成员
静态方法中不能直接访问同一个类的非静态成员,只能直接调用同一个类中的静态成员。
只能通过对象实例化后,对象.成员方法的方式访问非静态成员。
静态方法中不能使用this(this代表当前实例,static代表类共享,所以两者是冲突的。)
代码块:
方法里的{}叫普通代码块(顺序执行,先出现,先执行)
类中的{}叫构造代码块(创建对象时调用,优先于构造方法执行,每次实例化对象的时候都调用)
在构造代码块前加static,叫静态代码块(类加载时调用,优先于构造代码块执行,不管实例化几次,只调用一次,访问非静态成员与静态方法类似)