静态
什么时候用?
- 静态变量:
当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以修饰成静态。
只要数据在对象中都是不同的,就是对象的特有数据,这是非静态的;如果在对象中的数据是相同的,对象不需要修饰,不需要存储在对象中,设为静态即可。 - 静态函数:
函数是否修饰为静态,就参考该方法是否访问到了对象中的特有数据,如果有就用静态。
构造函数的执行顺序
- JAVA中执行顺序
父类静态块-》自身静态块-》父类块-》父类构造器-》自身块-》自身构造器
/*
DOG父类
*/
public class Dog {
public Dog() {
System.out.println("Dog");
}
static{
System.out.println("super static block");
}
{
System.out.println("super block");
}
}
/**
* 子类藏獒
*/
public class Mastiff extends Dog {
public Mastiff() {
System.out.println("Mastiff");
}
{
System.out.println("block");
}
static {
System.out.println("static block");
}
public static void main(String[] args){
Mastiff mastiff=new Mastiff();
}
}
运行结果:
- super static block
- static block
- super block
- Dog
- block
- Mastiff
也就是说此时的运行顺序为:
- 父类静态块
- 自身静态块
- 父类块
- 父类构造器
- 自身块
- 自身构造器