JAVA -- 类与对象(十一)属性初始化


属性初始化

对象属性初始化有3种

  1. 声明该属性的时候初始化
  2. 构造方法中初始化
  3. 初始化块
public class hero {
	public String name = "郭靖";//声明的时候初始化
	
	{
		int hp = 500; //初始化块
	}
	
	public hero() {
		int movespeed = 100;//构造方法初始化
	}
}

类属性初始化有2种

  1. 声明该属性的时候初始化
  2. 静态初始化块
public class hero {
	static String name = "湖北生物科技职业学院";//声明该属性的时候初始化
	
	static {
		int hp = 500;//静态初始化块 初始化
	}
}

tip:类的初始化块与对象属性的初始化块有所差异,需要在块前面加public

练习-属性初始化 ? ? ?
对象属性的初始化有三种方式
故意把初始化块,放在构造方法下面,问题:

这三种方式,谁先执行?谁后执行?

package charactor;
 
public class Hero {
    public String name = "some hero"; 
     
    public Hero(){
        name = "one hero";
    }
    {
        name = "the hero";
    }
     
}

代码由上之下运行,所以我判断最先执行的是声明时候的初始化,然后是初始化块,最后的构造方法中的初始化,只有在有实例的情况下才能够运行。
在这里插入图片描述

总结:
声明初始化>初始化块>构造方法初始化