对象属性初始化

  1. 声明该属性的时候初始化
  2. 构造方法中初始化
  3. 代码**块**中初始化 ```java package charactor;

public class Hero { public String name = “some hero”; //声明该属性的时候初始化 protected float hp; float maxHP;

  1. {
  2. maxHP = 200; //初始化块
  3. }
  4. public Hero(){
  5. hp = 100; //构造方法中初始化
  6. }

}

<a name="78f87357"></a>
# 
<a name="wuFVA"></a>
# 类对象初始化

1. **声明该属性**的时候初始化
1. 在**静态代码块**中初始化
```java
package charactor;

public class Hero {
    public String name; 
    protected float hp;
    float maxHP;

    //物品栏的容量
    public static int itemCapacity=8; //声明的时候 初始化

    static{
        itemCapacity = 6;//静态初始化块 初始化
    }
}

初始化顺序

  1. 初始化静态变量,但未赋值
  2. 执行静态变量赋值表达式和静态代码块,按照代码顺序执行
  3. 初始化普通变量,但未赋值
  4. 执行普通变量赋值表达式和普通代码块,按照代码顺序执行
  5. 执行构造函数

简言之,先静态后普通,最后执行构造函数。