0
点赞
收藏
分享

微信扫一扫

【final修饰符】


【final修饰符】

final修饰的成员蛮必须由程序员显式地指定初始值。

当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变。但对于引用类型变量而言,它保存的仅仅是一个引用,final只保证这个引用类型所引用的地址不会改变,即一直引用同一个对象,但这个对象的值可以改变。

import java.util.Arrays;
 
 
class Person
{
    private  int age;
    public Person()
    {
        
    }
    public Person(int age)
    {
        this.age=age;
    }
    
    public  void setAge(int age)
    {
        this.age=age;
    }
    public  int getAge()
    {
        return this.age;
    }
}
 
public  class FinalReferenceTest 
{
    public  static void main(String[] args)
    {
//final修饰的数组变量,iArr是一个引用变量
        final  int[] iArr={5,6,12,9};
        System.out.println(Arrays.toString(iArr));
//对数组元素进行排序,合法
        Arrays.sort(iArr);
        System.out.println(Arrays.toString(iArr));
//对数组元素赋值,合法
        iArr[2]=-3;
        System.out.println(Arrays.toString(iArr));
//下面语句对iArr重新赋值,非法
//iArr=null;
//final修饰Person变量,p是一个引用变量
        final Person p=new Person(50);
//改变Person对象的age Field,合法
        p.setAge(20);
        System.out.println(Arrays.toString(iArr));
//下面语句对p重新赋值,非法
//p=null;
    }
}

举报

相关推荐

0 条评论