类的成员之四,代码块(或初始化块)
1.代码块的作用:用来初始化类、对象
2.代码块如果有修饰的话,只能使用static.
3.分类;静态代码块 vs 非静态代码块
静态代码块
a.内部可以有输出语句
b.随着类的加载而执行,而且只执行一次
c.作用;初始化类的信息
d.如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
e.静态代码块的执行要优先于非静态代码块的执行
f.静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构
非静态代码块
a.内部可以有输出语句
b.随着对象的创建而执行
c.每创建一个对象,就执行一次非静态代码块
d.作用:可以在创建对象时,对对象的属性等进行初始化
e.如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
f.非静态代码块内可以调用静态的属性、静态的方法,或非静态的属性、非静态的方法
对属性可以赋值的位置
1.默认初始化
2.显式初始化
3.构造器中初始化
4.有了对象以后,可以通过”对象,属性”或”对象,方法”的方式,进行赋值
5.在代码块中赋值
final:最终的
1. final可以用来修饰的结构: 方法、变量
2. final 用来修饰一个类:此类不能被其他类所继承。
比如:String类、System类、StringBuffer类
3. final用来修饰方法,表明此方法不可以被重写
比如:Object类中getClass();
4. final用来修饰变量:此时的“变量"就称为是一个常量
a. final修饰属性;可以考虑赋值的位置有;显式初始化、代码块中初始化、构造器中初始化
b. final修饰局部变量:
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋 一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。