对象属性初始化有3种
1. 声明该属性的时候初始化 2. 构造方法中初始化 3. 初始化块
类属性初始化有2种
1. 声明该属性的时候初始化
1. 声明该属性的时候初始化 2. 构造方法中初始化 3. 初始化块
public
class
Hero {
public
String name =
"some hero"
;
//声明该属性的时候初始化
protected
float
hp;
float
maxHP;
{
maxHP =
200
;
//初始化块
}
public
Hero(){
hp =
100
;
//构造方法中初始化
}
}
1. 声明该属性的时候初始化
2. 静态初始化块
package
charactor;
public
class
Hero {
public
String name;
protected
float
hp;
float
maxHP;
//物品栏的容量
public
static
int
itemCapacity=
8
;
//声明的时候 初始化
static
{
itemCapacity =
6
;
//静态初始化块 初始化
}
public
Hero(){
}
public
static
void
main(String[] args) {
System.out.println(Hero.itemCapacity);
}
}
类的初始化顺序
静态变量, 静态代码快 -》 实例变量(属性,实例代码块,构造方法)
继承关系初始化顺序
父类静态成员,静态代码块 -》 子类静态成员,静态代码块 -》 父类实例变量(属性,实例代码块,构造方法)-》子类实例变量(属性,实例代码块,构造方法)
相同等级的初始化的先后顺序,是直接依赖代码中初始化的先后顺序