final修饰符究竟有什么作用,我们该如何使用,对我们的应用开发又能够起到什么作用,有java基础的肯定是不难说出final的几个用法,
1.被final修饰的变量在首次被初始化之后是不能够再次被赋值的。
2.被final修饰的方法是不可以被重写的。
3.被final修饰的类是不能够派生出子类来的。
被final修饰的实例变量和类变量
public class Main {
private final int num1 = 1;
private final int num2 ;
private final int num3 ;
private final static int num4;
private final static int num5 = 5;
{
num3 = 3;
}
static {
num4= 4;
}
public Main() {
num2 = 2;
// TODO Auto-generated constructor stub
}
}
首先,被final修饰的变量必须要对其进行显示初始化,而且系统不会对其进行初始化赋初值,对于实例变量有这三种初始化的方式,第一在定义的时候对其直接赋值,第二就是在非静态代码块中对其进行赋值,在静态代码块中是不可以对实例变量进行赋值的。第三种方式就是在构造函数中对其进行赋值。对于类变量来说1,在静态代码块中对其进行初始化2.在对其进行定义的时候直接对其进行显示初始化。是不可以在构造函数中对其进行初始化的。final修饰的变量相当于宏变量,但是只有再对该变量在定义的时候进行初始化的时候,该变量才会被执行宏替换,如果是在初始化块或者构造函数,或者是在对其赋值的时候用到一些方法的话,这些类型都是不可以对其进行宏替换的,这种情况表现在对变量的值得比较的时候出现,说到这就要说的是java中的字符串缓冲区,每一个字符串都会在缓冲池中有一个,相同的则只会存在一个,只有两个字符串变量指向同一个缓冲区的同一个变量的时候,才会判定其是相等,如果不是则会判定为不相等。
被final修饰的方法()