属性的分类 :对象属性(实例变量/实例属性) vs 类属性(类变量)
- 对象属性的初始化方法
- 声明属性的时候完成初始化
- 构造方法中完成初始化
- 采用代码块的方式完成初始化
public class Person {
public String name = "some person";
public Person(){
name = "one person";
System.out.println(name);
}
{
name = "the person";
System.out.println(name);
}
public static void main(String[] args) {
Person person = new Person();
}
}
上述代码在运行的时候,输出的结果为:
the person
one person
- 类属性的初始化方法
- 声明属性的时候完成初始化
- 采用代码块的方式完成初始化
public class Person {
public static String name = "some person";
static{
name = "the person";
System.out.println(name);
}
public static void main(String[] args) {
}
}
上述代码在运行的时候,输出的结果为:
the person
说明:
(1)非静态代码块是随着对象的创建而加载的,它的执行优先于构造器。
(2)静态代码块是随着类的加载而加载的。(类加载只加载一次)