概述
代码块(或初始化块)
- 代码块的作用:用来初始化类、对象(从这个角度看,把它叫作初始化块)
- 代码块如果有修饰的话,只能使用static
- 分类:静态代码块 vs 非静态代码块
静态代码块
static {
}
- 内部可以有输出语句
- 随着类的加载而执行,且只会执行一次
- 作用:初始化类的信息(比如静态属性)
- 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行。
- 静态代码块的执行要优先于非静态代码块的执行
- 静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构
非静态代码块
{
}
- 内部可以有输出语句
- 随着对象的创建而执行
- 每创建一个对象,就执行一次非静态代码块
- 作用:可以在创建对象时,对对象的属性等进行初始化
- 如果一个类中定义了多个代码块,则按照声明的先后顺序执行
- 非静态代码块内部可以调用静态属性、静态方法,或非静态属性、非静态方法。
对属性可以赋值的位置:
- 默认初始化
- 显式初始化
- 构造器中初始化
- 有了对象后,可用“对象.属性”、“对象.方法”的方式进行赋值
- 在代码块中赋值
执行先后顺序:1-2/5-3-4(2或5只看谁先声明,但一般没人把代码块声明在前面)
final关键字
1.final可以用来修饰的结构:类、方法、变量
2.final用来修饰一个类:此类不能被其他类所继承(即此类不能有子类了)。比如:String类、System类、StringBuffer类
3.final用来修饰方法:表明此方法不可以被重写。比如:Object类中的getclass();
4.final用来修饰变量:此时的“变量”就称为是一个常量
- final修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化
- final修饰局部变量:尤其是使用final来修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值后,就只能在方法体内使用此形参,但不能进行重新赋值。
static final用来修饰属性:全局常量
注意:当我们把对象形参设成final时,对象里的属性可以变。
public void addOne(final other o){
o.i++;
}
以上代码是合法的。
最后
以上就是懵懂跳跳糖为你收集整理的面向对象16:代码块、final关键字的全部内容,希望文章能够帮你解决面向对象16:代码块、final关键字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复