JAVA学习之final
首先谈谈final.
final关键字可以用于修饰变量、类和方法,用以表示它所修饰的对象不可改变.
final修饰变量时,一旦变量被赋以初值就不能重新被赋值.
主要初始化方法有:
- 定义final变量时同时赋值
- 利用初始化块赋值
- 构造器可以对未被赋值的final变量指定初始值
实例如下
public class Solution {
//定义final变量时同时赋值
final int a=7;
final int x;
//这里不能直接对fianl修饰的变量x赋值
//x=5;
final String y;
final double z;
//利用初始化块赋值
{
y="Hello";
z=9.0;
}
//构造器可以对未被赋值的final变量指定初始值
public Solution(){
x=5;
}
public static void main(String []args){
Solution So=new Solution();
System.out.println(So.x);
System.out.println(So.y);
System.out.println(So.z);
System.out.println(So.a);
}
}
注:系统不会对final成员进行隐式初始化,所以在使用前应注意,不要在初始化前就访问变量的值.
final int x;
{
System.out.println(x);//未初始化,不可以访问
x=6;
}
注:使用final修饰的引用类型变量不能被再赋值,但是引用类型变量所引用的对象可以被重新赋值.如下
public static void main(String []args){
final int [] arr={1,3,2,6,5};
System.out.println(Arrays.toString(arr));
arr[2]=6;//可以改变
System.out.println(Arrays.toString(arr));
arr=null ;//不可以改变
}
fianl方法
final修饰的方法不可被重写.
所以如果不想子类重写父类的某个方法就可以用final修饰.
final类
final修饰的类不可被继承.
如果不想某个类被继承就可以用final修饰.
本文来自博客园,作者:klaus08,转载请注明原文链接:https://www.cnblogs.com/klaus08/p/15105029.html