JAVA -- 类与对象(十一)属性初始化
属性初始化
对象属性初始化有3种
- 声明该属性的时候初始化
- 构造方法中初始化
- 初始化块
public class hero {
public String name = "郭靖";//声明的时候初始化
{
int hp = 500; //初始化块
}
public hero() {
int movespeed = 100;//构造方法初始化
}
}
类属性初始化有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";
}
}
代码由上之下运行,所以我判断最先执行的是声明时候的初始化,然后是初始化块,最后的构造方法中的初始化,只有在有实例的情况下才能够运行。

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